c#关键字 static

static 修饰符可用于声明 static 类。 在类、接口和结构中,可以将 static 修饰符添加到字段、方法、属性、运算符、事件和构造函数。 static 修饰符不能用于索引器或终结器

尽管类的实例包含该类的所有实例字段的单独副本,但每个 static 字段只有一个副本。

不可以使用 this 引用 static 方法或属性访问器。

类、接口和 static 类可以具有 static 构造函数。 在程序开始和实例化类之间的某个时刻调用 static 构造函数。

静态类

静态类的所有成员都必须为 static。

csharp 复制代码
//静态类
static class CompanyEmployee
{
    //静态类的所有成员都必须为 static
    public static void DoSomething() { /*...*/ }
    public static void DoSomethingElse() { /*...*/  }
}

常数或类型声明是隐式的 static 成员。 不能通过实例引用 static 成员。 然而,可以通过类型名称引用它。

csharp 复制代码
public class MyBaseC
{
    public struct MyStruct
    {
        public static int x = 100;
    }
}

若要引用 static 成员 x,除非可从相同范围访问该成员,否则请使用完全限定的名称 MyBaseC.MyStruct.x:

csharp 复制代码
Console.WriteLine(MyBaseC.MyStruct.x);

静态字段和方法

csharp 复制代码
public static int employeeCounter;

    public static int AddEmployee()
    {
        return ++employeeCounter;
    }

静态初始化

此示例演示了如何使用尚未声明的 static 字段来初始化另一个 static 字段。 在向 static 字段显式赋值之后才会定义结果。

csharp 复制代码
class Test
{
    static int x = y; //尚未声明的 static 字段y来初始化另一个 static 字段x
    static int y = 5;

    static void Main()
    {
        Console.WriteLine(Test.x);
        Console.WriteLine(Test.y);

        Test.x = 99;
        Console.WriteLine(Test.x);
    }
}
/*
Output:
    0
    5
    99
*/
相关推荐
励志的小陈5 小时前
贪吃蛇(C语言实现,API)
c语言·开发语言
Makoto_Kimur5 小时前
java开发面试-AI Coding速成
java·开发语言
laowangpython5 小时前
Gurobi求解器Matlab安装配置教程
开发语言·其他·matlab
wengqidaifeng5 小时前
python启航:1.基础语法知识
开发语言·python
观北海6 小时前
Windows 平台 Python 极简 ORB-SLAM3 Demo,从零实现实时视觉定位
开发语言·python·动态规划
Ulyanov7 小时前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
码界筑梦坊7 小时前
357-基于Java的大型商场应急预案管理系统
java·开发语言·毕业设计·知识分享
anzhxu7 小时前
Go基础之环境搭建
开发语言·后端·golang
yu85939588 小时前
基于MATLAB的随机振动仿真与分析完整实现
开发语言·matlab
赵钰老师8 小时前
【结构方程模型SEM】最新基于R语言结构方程模型分析
开发语言·数据分析·r语言