摘要:
有的类不含任何实例字段,所以用static关键字修饰该类。 C#编译器自动在CIL代码中把它标记为abstract和sealed,这会将类指定为不可扩展。 ps:自然没有实例成员,这个类是有静态成员。 最终会生成CIL代码,还是个加修饰符的类。 所以,以前自己不能理解静态和实例的区别,先不要从内存或 阅读全文
摘要:
设计对象时,程序员要考虑字段和方法应声明为静态还是基于实例。 一般应将不需要访问任何实例数据的方法声明为静态方法,将需要访问实例数据的方法声明为实例方法。 静态字段主要存储对应于类的数据; 实例字段主要存储和对象关联的数据。 阅读全文
摘要:
除了静态字段和方法,C#还支持静态构造函数,用于对类进行初始化。 静态构造函数不显式调用。 “运行时”在首次访问类时自动调用静态构造函数。 由于静态构造函数不能显式调用,所有不允许任何参数。 静态构造函数的作用,是将类中的静态数据初始化成特定值。(而实例构造函数也是初始化实例成员) 设计规范 最好在 阅读全文
摘要:
只记录回忆点 和静态字段一样,直接在类名后访问静态方法。 属性也可声明为static,使用静态属性几乎肯定比使用公共静态字段好,因为公共静态字段在任何地方都能调用,而静态属性至少提供一定程度的封装。 从C#6.0开始,整个NextId都可简化为带初始化器的自动实现属性。 阅读全文
摘要:
只记录回忆点 使用static关键字定义能由多个实例共享的数据; 和实例字段一样,静态字段也可在声明时初始化; 和实例字段不同,未初始化的静态字段将获得默认值,所以,没有显式赋值的静态字段也是可以访问的。 阅读全文