C# 静态类与成员

静态类 (Static Classes)

静态类是一种只包含静态成员(不能包含实例成员)的类。

主要特点:

  1. 不能被实例化。
  2. 只包含静态成员。
  3. 不能继承其他类,也不能被其他类继承。
 public static class MathUtils  
    {  
        // 静态字段,它们将在类加载时初始化  
        public static int Sum { get; private set; }  
        public static int Product { get; private set; }  
  
        // 静态构造函数,在类加载时执行  
        static MathUtils()  
        {  
            // 调用静态方法并初始化静态字段  
            Sum = Add(5, 3);  
            Product = Multiply(5, 3);  
        }  
        // 静态方法:加法  
        public static int Add(int a, int b)  
        {  
            return a + b;  
        }  
        // 静态方法:乘法  
        public static int Multiply(int a, int b)  
        {  
            return a * b;  
        }  
    }  
 public static void Main(string[] args)
        {
                        // 访问 MathUtils 类的静态字段  
                        int sum1 = MathUtils.Sum;  
                        int product1 = MathUtils.Product;  
  
                        // 输出结果  
                        Console.WriteLine("和: " + sum1); 
                        Console.WriteLine("积 " + product1);
         }  

静态成员 (Static Members)

静态成员包括静态字段、静态属性、静态方法和静态事件。因此,无论创建多少个类的实例,都只有一个静态成员的副本。

静态成员的主要特点:

  1. 静态成员属于类本身,而不是类的实例。
  2. 你可以通过类名直接访问静态成员,而不需要创建类的实例。
  3. 静态成员在第一次被引用时初始化,而不是在创建类的实例时初始化
public static  class MyCalculation
{
    // 静态类:下面所有的成员变量以及成员方法都需要声明成static
    public static int Num1 { get; set; }

    public static int Num2 { get; set; }

    public static int Plus()
    {
        return Num1 + Num2;
    }
}
static void Main(string[] args)
        {
            MyCalculation.Num1 = 10;
            MyCalculation.Num2 = 40;
            int result = MyCalculation.Plus();// 用一个结果来接收一下
            Console.WriteLine(result);
        }

静态构造函数 (Static Constructors)

静态构造函数用于初始化静态字段或执行只需在类加载时执行一次的操作。静态构造函数没有访问修饰符或参数,并且在一个类中只能有一个。当创建类的任何实例或引用任何静态成员之前,静态构造函数将自动执行。

static Animal()
    {
        Console.WriteLine("静态构造方法");
        
    }
 public Animal()
    {
        Console.WriteLine("实例构造方法");
    }
static void Main(string[] args)
        {
            Animal animal1 = new Animal();
        }

 

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值