C#之静态类、抽象类与密封类、抽象类与接口、字符串

本文探讨了C#中静态类的特性,如不允许实例化、内存分配、静态构造函数限制,以及抽象类与密封类的区别,强调接口的声明与实现方式。还介绍了StringBuilder的内存管理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态类

使用static修饰的类即为静态类

1.由于静态类是使用static修饰的所有类的内存在编译阶段就已经分配好了一份且是唯一的一份,

所以静态类是不允许创建实例的,因此在静态类中的所有成员都必须是静态的,但是在普通类中我们可以使用static来修饰一个函数即静态函数,那么我们可以使用static修饰一个普通类的构造函数吗?答案是肯定的,使用static修饰一个普通类的构造函数是C#中特有的,静态构造函数不能带有参数与访问权限修饰符,同时一个类只能有一个静态构造函数,并且不能被显式的调用

2.静态类的内存存放在静态全局区,静态全局区的内存是在整个程序结束时释放的,如果我们使用一个类来继承一个静态类,那么派生类被释放时会调用基类的析构函数,则会提前释放静态的内存,这种情况是不被允许的,因此静态类不能被继承

3.静态类中的构造函数不能使用方向权限符修饰也不能有参数

      static class C
        {
            static int num; //成员必须为静态

            static C()  //不能添加访问权限修饰符 与参数否则报错
            {

            }
            public static void Test()
            {
                Console.WriteLine("Test");
            }
        }
 
    //class D:C  静态类不能被继承
     // {
      //}

          class D
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值