文章目录
C#枚举
枚举是一组命名整型常量。枚举类型是使用enum关键字声明的。
[public] enum <enum_name>
{
enumeration list
};
enum_name 指定枚举的类型名称。
enumeration list 是一个用逗号分隔的标识符列表。
枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0
csharp
namespace MyStruct
{
enum day
{
Sun,
Mon,
Tue,
Wed,
Thu,
Fri,
Sat
};
class Program
{
static void Main(string[] args)
{
Console.WriteLine("{0}, {1}", (int)day.Sun, (int)day.Fri);
}
}
}
C#结构体
结构体是一种值类型,用于组织和存储相关数据。
csharp
struct Books
{
public string bookName;
public string bookAuthor;
public double bookPrice;
public int bookId;
}
namespace MyStruct
{
class Program
{
static void Main(string[] args)
{
Books book1;
book1.bookName = "C和指针";
book1.bookAuthor = "肯尼斯·里科";
book1.bookPrice = 99.79;
book1.bookId = 20240714;
Console.WriteLine("name:{0}, author:{1}, price:{2:f2}, id:{3}", book1.bookName, book1.bookAuthor, book1.bookPrice, book1.bookId);
}
}
}
C#结构体特点
结构可带有方法、字段、索引、属性、运算符方法和事件,适用于表示轻量级数据的情况,如坐标、范围、日期、时间等。
与类不同,结构不能继承其他的结构或类。
结构不能作为其他结构或类的基础结构。
结构可实现一个或多个接口。
如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。
结构变量通常分配在栈上,这使得它们的创建和销毁速度更快。但是,如果将结构用作类的字段,且这个类是引用类型,那么结构将存储在堆上。
封装
封装是为了防止对实现细节的访问。封装可以通过访问限定符限制访问权限。
访问限定符
|--------------------|---------------------|
| 访问限定符 | 描述 |
| public | 公共的,所有对象均可访问 |
| private | 私有的,只有对象本身内部可以访问 |
| protected | 保护的,类的对象及其子类对象可以访问 |
| internal | 同一程序集的对象可以访问 |
| protected internal | 访问限于当前程序集或派生自包含类的类型 |
以访问 protected internal 访问限于当前程序集或派生自包含类的类型