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();
相关推荐
xiaoye-duck2 分钟前
《C++ 项目:手写大模型接入 SDK》LLMManager架构设计与实现
开发语言·网络·c++·语言模型
一条大祥脚25 分钟前
CuTe 与 CuTe DSL:从 C++ 模板元编程到 Python DSL 的 GPU 编程演进
开发语言·c++·python·cutlass·cute·cute dsl
FRing031 小时前
vue2干货总结8(路由模块封装、router-link、声明式导航、路由重定向、编程式导航)
开发语言·前端·vue.js·vue2
旖旎夜光1 小时前
【C++ 基础入门】C++ 多态(上):虚函数、重写、override/final 与抽象类
开发语言·c++·笔记·学习
starzy19902 小时前
深入理解Scala嵌套函数:作用域封装之道
开发语言·scala
Sakura_j_h_2 小时前
从零写一个 MCP stdio Server:用 Python 校验博客文章格式
开发语言·python·自动化·ai工具·mcp·json-rpc
白杨尚青3 小时前
C++进阶篇(五):红黑树——四条规则、三种插入情况与旋转变色
开发语言·数据结构·c++·stl·红黑树·平衡二叉树
.道阻且长.3 小时前
Linux基本开发工具:gdb和cgdb的使用
linux·运维·服务器·开发语言
starzy19904 小时前
深入理解Scala匿名函数:函数式编程基石
开发语言·scala
apcipot_rain5 小时前
C++转Java日记(05)
java·开发语言·c++