访问 class 的静态变量后,执行流程是怎样的?

What is the flow of execution once you access a static variable of a class?

我的结构符合

public static class BuildVersion
{
    public static Version v1// a Version variable
    {
        get
        {
            isVersionV1Updated=true;
            return getVersion("v1");//this is a helper method to get versions
        }
    }
    public static Version v2
    {
        get {
            isVersionV1Updated=false;
            return getVersion("v2");
        }
    }
    public static bool isVersionV1Updated = false;
    public static Version getVersion(string versionString)
    {
        Console.WriteLine(versionString+" updated");
        //do something
        return requiredVersion;
    }
}

现在,当我设置 BuildVersion.isVersionUpdated=true 时会发生什么?

  1. 我的意思是,流程是什么,变量 v1 和 v2 会得到吗 人口稠密?
  2. 如果是,输出会打印"v1 updated"和“v2 已更新”显示为输出?
  3. 如果我将 class 'BuildVersion' 设置为非静态
  4. 会有什么不同吗

P.S。请原谅这个问题太天真了,我很好奇当你做 "BuildVersion.someVariable"

时控制流向哪里

首先,使用非静态 class,您会在输出 window 中获取数据,因为可能是在您创建 class 实例时,之后您获取了 v1 & v2.
回答你的问题:
1. No.When 您设置了 isVersionUpdated=true,v1 和 v2 仍然保持不变。
2. 目前不会,但是如果在您的代码中,当您尝试获取 v1 或 v2 时,它会。
3. 普通classes可以有静态和非静态methods/props所以,适合自己(如果你以后觉得你可能需要非静态属性和方法)。