C#的修饰符:static
声明属于类型本生而不属于实体对象的成员。
一、非静态类
1、非静态类可以包含静态的方法、字段、属性或事件。 静态的类成员属于类级别的,不属于类的任何实例,类外不可以通过类的实体对象来调用静态变量,要用类名来调用,(如现在有一个Student 类,这个类里有一个static string name,当其他类需要调它的时候就要用Student.name);无论对一个类创建多少个实例,它的静态成员都只有一个副本,类里的所有成员都可以访问它,可以改变它的值。 静态方法和属性不能访问其包含类型中的非静态字段和事件,并且不能访问任何对象的实例变量(除非在方法参数中显式传递)。
静态字段有两个常见的用法:一是记录已实例化对象的个数;二是存储必须在所有实例之间共享的值。
静态方法可以被重载但不能被重写,因为它们属于类,不属于类的任何实例。
2、静态成员在第一次被访问之前并且在调用静态构造函数(如有存在)之前进行初始化。 静态构造函数用于初始化任何 静态 数据,或用于执行仅需执行一次的特定操作。 在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。
public class Students
{
//定义静态变量
public staic int Num;
//静态构造函数
static Students()
{
Num = 30;
}
}
3、静态构造函数具有以下特点:
静态构造函数既没有访问修饰符,也没有参数。用于对静态字段、只读字段等的初始化。
在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。类的静态构造函数在给定应用程序域中至多执行一次。
静态构造函数是不可继承的,而且不能被直接调用。
在程序中,用户无法控制何时执行静态构造函数。
如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。
4、静态变量的几点说明:
二、静态类:
声明为static,它仅包含静态成员,不能用new静态类的实例。使用静态类来包含不与特定对象关联的方法。
功能:仅包含静态成员,不能被实例化,是密封的,不能包含实例构造函数,可包含静态构造函数以分配初始值或设置某个静态变量。
优点:编译器能够执行检查以确保不致偶然地添加势力成员。编译器将保证不会创建此类的实例。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。