我的代码有问题。我想这很简单,但我缺乏 OOP 和 C# 方面的经验,所以我必须问你。
我的代码如下所示:
namespace RR
{
static class Program
{
[STAThread]
private static string token;
static void Main()
{
[...]
}
}
}
问题是变量token
不起作用/无法编译。我想这个错误很容易发现,但是我已经尝试了任何版本的static
,public static
并使用函数(setters和getter)来完成工作,但没有任何效果。我发现这个:静态方法中的全局变量,但后来我不得不删除[STAThread]
我不知道它甚至做了什么,所以我宁愿以另一种方式解决这个问题。
源代码是我在 C# 2012 中创建新项目时自动设置的。
澄清一下:如何在这样的静态类中使用公共变量而不必删除 STAThread?
[stathread] 是一个属性,与它正下方的代码相关 - 把它放回原来的主函数上方,把你的变量放在它上面,你会没事的
而且您是正确的,您需要按照您的建议使用 static 关键字声明您的变量
[STAThread]
是方法的属性。 它需要保留在static void Main()
之前 通常,最佳做法是不要在入口点中包含业务逻辑,而是从 Main() 中创建 worker 类的新实例。
如果要编译它,请将[STAThread]
移动到static void Main()
上方并更改private static string token;