nini

学然后知不足,教然后知困
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Static总结

Posted on 2007-04-03 21:04  nini  阅读(401)  评论(1编辑  收藏  举报

关于Static修饰符

  • static修饰符声明的静态成员是属于类型本身,而不是属于该类型的特定对象的。对于静态成员的引用,我们不能通过实例对象来进行引用,而只能通过类型名称引用它。理解这一点很重要。
  • static修饰符可用于类、字段、方法、属性、运算符、事件和构造函数。但不能用于索引器、析构函数或类以外的类型。

 例:

1 public class MyBaseC 
2 {
3     public struct MyStruct 
4     {
5         public static int x = 100;
6     }
7 }
8 
1public class Test
2{
3    MyBaseC c = new MyBaseC();
4    //Console.WriteLine(c.MyStruct.x);//错误的引用
5    Console.WriteLine(MyBaseC.MyStruct.x);//正确的引用
6    Console.ReadLine();
7}

8
  • 尽管类的实例包含该类所有实例字段的单独副本,但每个静态字段只有一个副本。
  • 不可以使用this来引用静态方法或属性访问器。
  • 如果对类应用static关键字,则该类的所有成员都必须是静态的。静态类不能被实例化。
  • 类(包括静态类)可以有静态构造函数。在程序开始之后,该类被实例化之前的某个时刻,静态构造函数被调用。

 

关于静态类

  • 静态类仅包含静态成员
  • 静态类不能被实例划
  • 静态类是密封的(sealed),因此,它们不能被继承。
  • 静态类不能包含实例构造函数。

 

关于静态成员

  • 静态成员包括静态方法、字段、属性和事件。他们不能通过实例来访问.
  • 静态方法和属性只能访问静态字段和静态事件。
  • 静态成员在第一次被访问之前并且在任何静态构造函数之前初始化。

 

关于静态构造函数

  • 静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。
  • 静态构造函数既没有访问修饰符,也没有参数。
  • 无法直接调用静态构造函数。
  • 在程序中,用户无法控制何时执行静态构造函数。
  • 静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。
  • 静态构造函数在为非托管代码创建包装类时也很有用,此时该构造函数可以调用 LoadLibrary 方法。