C#静态成员的用法
很多时候,不同的类之间需要对同一个变量进行操作。例如一个水池,同时打开进水口和出水口,进水和出水这两个动作会同时影响到池中的水量,此时池中的水量就可以认为是一个共享的变量,如下图所示。
图 1 同一水池中的进水口和出水口
在 C# 程序中,共享的变量或者方法用 static 修饰,它们被称作静态变量和静态方法,也被称为类的静态成员。静态成员是属于类所有的,在调用时不用创建类的对象,可以直接使用类名调用。
例如,创建一个控制台应用程序,在 Program 类中定义一个静态方法 Add,实现两个整数相加,然后在 Main 方法中直接使用类名调用静态方法,代码如下:
例如,下面的代码是错误的:
图 1 同一水池中的进水口和出水口
在 C# 程序中,共享的变量或者方法用 static 修饰,它们被称作静态变量和静态方法,也被称为类的静态成员。静态成员是属于类所有的,在调用时不用创建类的对象,可以直接使用类名调用。
例如,创建一个控制台应用程序,在 Program 类中定义一个静态方法 Add,实现两个整数相加,然后在 Main 方法中直接使用类名调用静态方法,代码如下:
class Program { public static int Add(int x, int y)//定义静态方法实现整数相加 { return x + y; } static void Main(string[] args) { //类名调用静态方法 Console.WriteLine("{0}+{1}={2}", 23, 34, Program.Add(23, 34)); Console.ReadLine(); } }运行结果如下:
23+34=57
注意,如果在声明类时使用了 static 关键字,则该类就是一个静态类。静态类中定义的成员必须是静态的,不能定义实例变量、实例方法或者实例构造函数。例如,下面的代码是错误的:
static class Test { public Test() { } }另外,static 关键字也不能修饰常量。例如,下面的代码是错误的:
public static const int speed = 10;//飞机的移动速度