参考链接:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords
关键字是预定义的保留标识符,对编译器有特殊意义。若需要使用关键字作为标识符,则需要在关键字前面添加@前缀。
关键字有两种:一种是C#程序任意部分中的保留标识符的关键字;一种是仅在一部分程序上下文中作为关键字使用,在相应上下文范围之外用作标识符。(注:C#语言中新增的关键字会作为上下文关键字添加,以免破坏用旧版语言编写的程序)
C#类型
值类型的变量可存储数据,引用类型的变量可存储对实际数据的引用。引用类型的实例称作对象。仅在不安全模式下才可使用指针类型。
值类型与引用类型之间会发生装箱和拆箱操作。(注:只有已装箱值类型才能进行拆箱操作)
====值类型====
值类型复制是复制该值,而引用类型复制是复制引用。
所有的值类型都隐式派生自System.ValueType。每个值类型都具有一个初始化该类型的默认值的隐式构造函数。
与引用类型不同,值类型不能从值类型派生新类型。但是,与引用类型一样,结构类型可以实现接口。
值类型变量不能默认为null,但相应的可为空类型的变量可以为null。
====引用类型====
class
delegate --> event
dynamic 与 object
interface
string
C#修饰符
====访问修饰符====
public: 访问不受限制
protected:访问限于包含类或派生自包含类的类型
internal:访问限于当前程序集
protected internal:访问限于当前程序集或派生自包含类的类型
private:访问限于包含类
private protected:访问限于包含类或当前程序集中派生自包含类的类型
除了protected internal或private protected组合的情况外,一个成员或类型仅允许一个访问修饰符。namespace不允许出现访问修饰符,它是没有任何访问限制的。
如果未在成员声明中指定访问修饰符,则将使用默认访问修饰符。如enum/interface默认修饰符public;class/struct默认修饰符private。