1

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

我的代码如下所示:

namespace RR
{
    static class Program
    {
        [STAThread]

        private static string token;

        static void Main()
        {
            [...]
        }
    }
}

问题是变量token不工作/不会编译。我想这个错误很容易发现,但我尝试了任何版本的static,public static并使用函数(setter 和 getter)来完成这项工作,但没有任何效果。我发现了这个:Global variable in a static method,但后来我不得不删除[STAThread]它,我什至不知道它做了什么,所以我宁愿用另一种方式解决这个问题。

当我在 C# 2012 中创建一个新项目时,源是自动设置的。

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

4

2 回答 2

6

[stathread] 是一个属性,与它下面的代码直接相关 - 将它放回原来所在的 main 函数上方,然后将变量放在它上面,你会没事的

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

于 2012-10-07T22:24:27.490 回答
1

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

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

于 2012-10-07T22:28:23.463 回答