C#可以通过static关键字来定义许多静态成员。如果这样的话,这些静态成员就只能从类级别而不是类型实例调用。如Console.WriteLine("Thanks...");
1.静态成员只能操作静态数据或调用类的静态方法,不可调用非静态数据,因为静态数据时属于类的,而不是属于实例对象的。
2.静态成员只能操作静态数据,但非静态方法可以使用静态数据和非静态数据。
3.定义静态构造函数
构造函数用于在创建类型时设置类型的数据值。如果在实例级别的构造函数中赋值给静态数据成员,你会发现每次新建的对象的时候静态值都会被重置。
如:
Class Account
{
public static double PI;
public Account( double balance)
{
PI = 3.14;
balance = PI;
}
}
虽然我们可以使用成员初始化语法来初始化静态数据的值,但如果静态数据值是需要从数据中获取的呢。由于这样原因,C#允许我们定义静态构造函数:
Class Account
{
public static double PI;
static Account()
{
PI = 3.14;
}
}
简而言之,静态构造函数是特殊的构造函数,并且非常适用于初始化在编译时未知的静态数据的值,静态构造函数需要注意几点:
1. 一个类只可以定义一个静态构造函数。
2.静态构造函数不允许访问修饰符,并且不能接收任何参数。
3.无论创建了多少类型的实例,静态构造函数只执行一次。
4.运行库创建类实例或调用者首次访问静态成员之前,运行库会调用静态构造函数。
4.定义静态类
C# 通过静态类扩展了static关键字的作用。如果一个类被定义了一个静态类就不能用new关键字来创建,并且只能包含用static关键字标记的成员或字段(如果不是这样,就会收到编译错误)。
如果我们创建一个只包含静态成员或常量数据的类,就不需要先进行分配。
项目的应用程序对象(如定义Main()方法)通常定义为静态类,以此来区别只包含静态成员,并且不能被直接创建。