c#静态类和静态构造函数

静态类

用static修饰类

只能包含静态成员

不能被实例化

将常用的静态 成员写在静态类中 方便使用

静态类不能被实例化,更能体现工具类的唯一性

适合做工具类

cs 复制代码
static class TestStatic
{
    
    public static int value=0;
    public static void TestFun()
    {

    }
    public static int TestIndex
    {
        get
        {
            return TestIndex;
        }
        set
        {

        }
    }

}

静态构造函数

在构造函数上加static修饰

静态类和普通类都可以有

不能使用访问修饰符

不能有参数

只会自动调用一次

使用

在静态构造函数中初始化 静态变量

静态类中的静态构造函数

cs 复制代码
static class StaticClass
{
    public static int testInt = 100;
    public static int testInt2 = 200;
    static StaticClass()
    {
        Console.WriteLine("**");
        Console.WriteLine(StaticClass.testInt);
        Console.WriteLine(testInt);
    }
}

普通类中的静态构造函数

cs 复制代码
 class Test
 {
     public static int testInt = 200;
     static Test()
     {
         Console.WriteLine("静态构造");
     }
     public  Test()
     {
         Console.WriteLine("普通构造");
     }
 }

Console.WriteLine(StaticClass.testInt);//在第一次使用时 就会调用

Test t = new Test();//两个对象 但是只调用了一次 。在你第一次使用这个类时就会自动调用

Test t2 = new Test();

cs 复制代码
Console.WriteLine(StaticClass.testInt);
Test t = new Test();
Test t2 = new Test();
相关推荐
小短腿的代码世界6 分钟前
Qt文件系统与IO深度解析:从QFile到异步文件操作
开发语言·qt
harder3211 小时前
RMP模式的创新突破
开发语言·学习·ios·swift·策略模式
jinanwuhuaguo2 小时前
OpenClaw工程解剖——RAG、向量织构与“记忆宫殿”的索引拓扑学(第十三篇)
android·开发语言·人工智能·kotlin·拓扑学·openclaw
Rust研习社2 小时前
使用 Axum 构建高性能异步 Web 服务
开发语言·前端·网络·后端·http·rust
淘矿人3 小时前
从0到1:用Claude启动你的第一个项目
开发语言·人工智能·git·python·github·php·pygame
cany10003 小时前
C++ -- 模板的声明和定义
开发语言·c++
澈2073 小时前
深耕进阶 Day1:C 与 C++ 核心差异 + C++ 入门基石
c语言·开发语言·c++
Felven3 小时前
C. Need More Arrays
c语言·开发语言
love530love4 小时前
Podman Machine 虚拟硬盘迁移实战二:用 Junction 把 vhdx 从 C 盘搬到其他盘
c语言·开发语言·人工智能·windows·wsl·podman·podman machine
愚者游世4 小时前
noexcept 说明符与 noexcept运算符各版本异同
开发语言·c++·程序人生·面试·visual studio