将全局变量添加到 C# 程序时必须删除 [STAThread]



我的代码有问题。我想这很简单,但我缺乏 OOP 和 C# 方面的经验,所以我必须问你。

我的代码如下所示:

namespace RR
{
    static class Program
    {
        [STAThread]
        private static string token;
        static void Main()
        {
            [...]
        }
    }
}

问题是变量token不起作用/无法编译。我想这个错误很容易发现,但是我已经尝试了任何版本的staticpublic static并使用函数(setters和getter)来完成工作,但没有任何效果。我发现这个:静态方法中的全局变量,但后来我不得不删除[STAThread]我不知道它甚至做了什么,所以我宁愿以另一种方式解决这个问题。

源代码是我在 C# 2012 中创建新项目时自动设置的。

澄清一下:如何在这样的静态类中使用公共变量而不必删除 STAThread?

[stathread] 是一个属性,与它正下方的代码相关 - 把它放回原来的主函数上方,把你的变量放在它上面,你会没事的

而且您是正确的,您需要按照您的建议使用 static 关键字声明您的变量

[STAThread]

方法的属性。 它需要保留在static void Main()之前 通常,最佳做法是不要在入口点中包含业务逻辑,而是从 Main() 中创建 worker 类的新实例。

如果要编译它,请将[STAThread]移动到static void Main()上方并更改private static string token;

最新更新