最新消息:把Logo换了一下,虽然丑了点,但至少完全是自己的设计

说说C#中的static关键字

CSharp 宇托 198浏览 暂无评论

在C#中,static这个应该是用得比较多的。它能用于以下这些地方:

  • 用于类的申明。可以申明类为静态类,静态类只能有静态构造函数、静态函数、静态字段、静态属性和常量。
  • 用于构造函数的申明,申明为静态构造函数。静态构造函数不能有参数和访问修饰符(如:publicprivate )。
  • 用于函数的申明,申明为静态函数。
  • 用于字段的申明,申明为静态字段。
  • 用于字段的属性,申明为静态属性。

现在分别说说静态类,静态构造函数,静态函数,静态字段和静态属性。

静态类

静态类的主要特性如下:

  1. 它仅能包含静态成员,不能包括实例字段、实例属性、实例函数以及实例构造函数。
  2. 它无法实例化,这是它与私有构造函数的普通类的最大区别。
  3. 它无法继承其它类,只能继承System.Object。它也无法被其它类或者静态类继承。

静态构造函数

静态构造函数的主要特性如下:

  1. 静态类和普通类都可以有静态构造函数。
  2. 一个类中静态构造函数只能有一个,而且不能继承。
  3. 静态构造函数不能有修饰符,也不能有参数,只有一个static标志。
  4. 静态构造函数无法直接调用,在类第一次加载时,静态构造函数会被自动执行,且只执行一次。

静态函数

静态函数的主要特性如下:

  1. 静态类和普通类都可以有静态函数。
  2. 静态函数可以访问静态成员,但不可以访问实例成员。

静态字段

静态字段的主要特性如下:

  1. 静态类和普通类都可以有静态字段。
  2. 静态字段是属于类的,在类第一次加载时,就会加载类里的所有静态字段。
  3. 静态字段每一个类只有一份,它会存储在“静态存储区”里,一旦创建直到程序退出,才会被回收。
  4. 静态字段可以用静态构造函数来完成初始化。
  5. 虽然const字段无法加static标志,但可以看成是静态只读字段。当然两者还是有区别的,其区别。

静态只读字段static readonly和常量const的区别:

  • 静态只读字段可以设置任意值。除字符串string以外的引用类型常量只能设置为null
  • 静态只读字段可以用静态构造函数来完成初始化。常量只能在定义时初始化。
  • 在编译时,如果有常量的计算,会在编译时计算,而不是执行时;而静态只读字段不会。所以说常量的速度会比静态只读字段要快。

静态属性

静态属性的主要特性如下:

  1. 静态类和普通类都可以有静态属性。
  2. 静态属性是属于类的,在类第一次加载时,就会加载类里的所有静态属性。
  3. 如果静态属性需要初始化,可以用静态构造函数来完成。
  4. 静态属性可以访问其它静态成员。
  5. 静态属性在抽象类里申明,但不能被子类覆盖。也就是说,不能用abstractvirtual来修饰。

转载请注明:宇托的狗窝 » 说说C#中的static关键字

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址