码迷,mamicode.com
首页 > Windows程序 > 详细

C#中的“静态”

时间:2015-08-19 17:02:53      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:c#   静态类   

静态构造函数:
C#的一个新特征是也可以给类编写无参数的静态构造函数。编写静态构造函数的一个原因是,类有一些静态字段或属性,需要在第一次使用类之前,从外部源中初始化这些静态的字段和属性。

.NET运行库没有确保什么时候执行静态构造函数,所以不能把要求在某个特定时刻执行的代码放在静态构造函数中。也不能预计不同类的静态构造函数按照什么顺序执行。但是可以确保静态构造函数至多运行一次,即在代码引用类之前调用它。

静态构造函数没有访问修饰符,其他C#代码从来不调用它,但在加载类时,总是由.NET运行库调用它,所以像public或private这样的访问修饰符就没有任何意义。

出于同样的原因,静态构造函数不能带任何参数,一个类只能有一个静态构造函数。很显然,静态构造函数只能访问类的静态成员,不能访问类的实例成员。

注意,无参数的实例构造函数与静态构造函数可以在一个类中同时定义。尽管参数列表相同,但这并不矛盾,因为在加载类时执行静态构造函数,而在创建实例使执行实例构造函数,所以何时执行哪个构造函数并不冲突。

class BaseClass
{
    private static int count;
    static BaseClass()
    {
    count = 0;
    console.writeline("aaa");
    }
}

静态字段:
使用static修饰 属于类,不属于某个实例。
与实例字段一样,可以在声明的同时进行初始化。
与实例字段不同,如果没有对静态字段进行初始化,静态字段将自动获取默认值(0,null,false等)。所以,一个静态字段即使没有被显示地赋值,也可以被访问。
访问需要使用 类名.静态字段名,不能使用 对象名.静态字段名

静态方法:
使用static修饰,直接使用 类名.方法名
静态方法的函数体内不能直接使用非静态成员,也没有this.

静态类:
如果类只包含静态的方法和属性,该类就是静态类。静态类在功能上与使用私有静态构造函数创建的类相同,不能创建静态类的实例。
静态类是不能实例化的,我们直接使用它的属性与方法,静态类最大的特点就是共享。

public static class StaticTestClass
{
    public static int n = 0;

    public static void Add()
    {
        n++;
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

C#中的“静态”

标签:c#   静态类   

原文地址:http://blog.csdn.net/wangshubo1989/article/details/47780587

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!