C# static:静态成员,小白也能看懂

简单来说,static 就是"**静态"**的意思,被它修饰的成员,不属于某一个具体对象,而是属于整个类。

比如我们创建一个学生类:

cs 复制代码
class Student
{
    public string name;
}

如果创建两个学生:

cs 复制代码
Student s1 = new Student();
Student s2 = new Student();

那么 "s1" 和**"s2"** 都有自己独立的**"name"**。这就是普通成员。

但是如果加上**"static":**

cs 复制代码
class Student
{
    public static string school = "XX大学";
}

这时候**"school"** 就是静态成员。它不属于某一个学生,而是属于 "Student" 这个类。使用的时候也不需要 **"new"**对象,可以直接这样写:

cs 复制代码
Console.WriteLine(Student.school);

这就是 static最重要的特点:类直接使用,不再需要创建对象。

静态成员还有一个特点,就是大家共享同一份数据。比如有100个学生对象,但**"Student.school"** 只有一份。修改了它,所有地方看到的都是修改后的结果。

除了静态变量,还可以定义静态方法:

cs 复制代码
class Test
{
    public static void SayHello()
    {
        Console.WriteLine("你好!");
    }
}

调用时直接:

cs 复制代码
Test.SayHello();

同样不需要 "new Test()"。

不过要注意,静态方法不能直接访问普通成员,因为普通成员属于对象,而静态方法没有指定到底是哪一个对象。

平时我们也经常接触 static ,比如程序的入口方法:

cs 复制代码
static void Main()
{
}

这里的 "Main" 就是静态方法。

总的来说,可以把 "static" 简单理解成:这个东西不是某一个对象独有的,而是整个类共同使用的。刚开始学习的时候不用想得太复杂,记住**"类直接调用、不需要 new、大家共享"** 这几个特点,基本就能理解static了。

相关推荐
weixin_440730502 小时前
函数return、参数、参数组、递归函数、高阶函数等小结
开发语言·python
sugarzhangnotes2 小时前
【无标题】
开发语言·人工智能·python
geovindu2 小时前
rust: Composite Pattern
开发语言·后端·设计模式·rust·组合模式
samble2 小时前
从零搭建灌装监控系统(十):生产追溯,条码触发自动记录
c#·wpf·mvvm·modbus·工业控制
周杰偷奶茶3 小时前
【Java】数组的定义和使用(附管理系统实战案例)
java·开发语言
橙子圆1234 小时前
JUC之集合类不安全
java·开发语言
阿里嘎多学长4 小时前
2026-09-29 GitHub 热点项目精选
开发语言·程序员·github·代码托管
Bruce_Liuxiaowei4 小时前
网页版 DeepSeek “harness desktop“ WebGL 上下文创建失败排查实录
开发语言·javascript·webgl
狗凯之家源码网4 小时前
PHP 用户反馈系统源码深度评测与实战指南
开发语言·php·用户反馈系统
谢亮_vipxieliang5 小时前
Stream API 不是银弹:常见坑与性能建议
java·开发语言