C# 中 静态对象(类、实例、变量、方法)

  1. 非静态类中静态变量
    第1种 情况:
             实例化类  TEST a = new TEST(); ,执行顺序为:先声明 或执行 静态的:  静态字段->静态构造函数 ,再非静态的。 静态的只执行一次,
      也就是说再 TEST a1 = new TEST(); 下图的 step 1 、2 、3 、4会 不执行断点。
    public class TEST
        {
            private string Str1 = "notStatic123"; //Step5
            private  string Str2 { get; set; } = "notStatic456"; //Step6
    
            private static string staticStr1  = "static123";  //Step1 
            private static string staticStr2 { get; set; } = "static456";  //Step2
    
            public static string comonStr  = "static456";    //Step3
    
            private static  readonly string readonlyStr;
            public TEST() //Step7
            {
               // readonlyStr = "1"; 可以使用非静态只读字段
                Str1 = "5";
                staticStr2 = "123123";
            }
            static TEST() //Step4
            {
                //静态构造函数不需要修饰符,不能参数
                staticStr1 = "static123000";
                staticStr2 = "static456000";
                //Str1 = "5";//无法使用非静态字段
                readonlyStr = "1"; //可以使用静态只读字段
            }
            public static void FromEmail()
            {
    
            }
            public void FromEmail2()
            {
    
            }
        }

    第2种 情况:
     直接通过类来调用静态方法或者变量:
      若是TEST.FromEmail(),执行顺序,step 1 、2 、3、4执行顺序不变  ,step 5为FromEmail方法;非静态的实例一律不执行。
      若是 TEST.comonStr  执行顺序  step 1 、2 、3、4执行顺序不变

  2.  静态类中的静态对象
    首先静态类中只允许静态构造函数,和静态方法、静态实例变量
    其次 静态类不能实例化
    执行顺序和非静态类的方式类似,先变量,后构造函数,再方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值