静态变量的不同声明

问题描述 投票:0回答:1

是否可以(在C#中)对一个静态变量进行不同的声明?例如,我有一个 "static bool test = true".现在我想要一个 "static int interval",但它应该取决于测试。

if (test)
{
    static int interval = 1;
}
else
{
    static int interval = 5;
}

因为所有的变量都不是在方法中,而是直接在类中声明的,所以我不能使用任何这样的东西,因为它是...

先谢谢你

c# variables global-variables
1个回答
1
投票

有两种非常相似的方法来实现这个目标。

  1. 在你的赋值中使用三元组:

    class MyClass
    {
        static bool test = true;
        static int interval = (test ? 1 : 5)
    }
    
  2. 使用静态构造函数

    class MyClass
    {
        static bool test = true;
        static int interval;
        static MyClass()
        {
            if(test) interval = 1;
            else interval = 5;
        }
    }
    
© www.soinside.com 2019 - 2024. All rights reserved.