简单来说,static 就是“静态”的意思,被它修饰的成员,不属于某一个具体对象,而是属于整个类。
比如我们创建一个学生类:
class Student
{
public string name;
}
如果创建两个学生:
Student s1 = new Student();
Student s2 = new Student();
那么 "s1" 和 "s2" 都有自己独立的 "name"。这就是普通成员。
但是如果加上 "static":
class Student
{
public static string school = "XX大学";
}
这时候 "school" 就是静态成员。它不属于某一个学生,而是属于 "Student" 这个类。使用的时候也不需要 "new" 对象,可以直接这样写:
Console.WriteLine(Student.school);
这就是 static 最重要的特点:类直接使用,不再需要创建对象。
静态成员还有一个特点,就是大家共享同一份数据。比如有100个学生对象,但 "Student.school" 只有一份。修改了它,所有地方看到的都是修改后的结果。
除了静态变量,还可以定义静态方法:
class Test
{
public static void SayHello()
{
Console.WriteLine("你好!");
}
}
调用时直接:
Test.SayHello();
同样不需要 "new Test()"。
不过要注意,静态方法不能直接访问普通成员,因为普通成员属于对象,而静态方法没有指定到底是哪一个对象。
平时我们也经常接触 static,比如程序的入口方法:
static void Main()
{
}
这里的 "Main" 就是静态方法。
总的来说,可以把 "static" 简单理解成:这个东西不是某一个对象独有的,而是整个类共同使用的。刚开始学习的时候不用想得太复杂,记住“类直接调用、不需要 new、大家共享”这几个特点,基本就能理解 static 了。



