- 非静态类中静态变量
第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执行顺序不变 -
静态类中的静态对象
首先静态类中只允许静态构造函数,和静态方法、静态实例变量
其次 静态类不能实例化
执行顺序和非静态类的方式类似,先变量,后构造函数,再方法
C# 中 静态对象(类、实例、变量、方法)
最新推荐文章于 2023-07-08 15:17:48 发布