1

コードに問題があります。これは非常に簡単だと思いますが、OOPとC#の経験が不足しているので、質問する必要があります。

私のコードは次のようになります。

namespace RR
{
    static class Program
    {
        [STAThread]

        private static string token;

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

問題は、変数tokenが機能していない/コンパイルされないことです。エラーを見つけるのは非常に簡単だと思いますが、の任意のバージョンを試し、static関数public static(セッターとゲッター)を使用して作業を行いましたが、何も機能しません。私はこれを見つけました:静的メソッドのグローバル変数、しかしそれから私は何をするのかさえ分からないものを削除[STAThread]しなければならなかったので、私はむしろこの問題を別の方法で横断したいと思います。

ソースは、C#2012で新しいプロジェクトを作成したときの自動セットアップです。

明確にするために:STAThreadを削除せずに、このような静的クラスでパブリック変数を使用するにはどうすればよいですか?

4

2 に答える 2

6

[stathread]は属性であり、そのすぐ下のコードに関連しています。元のメイン関数の上に戻し、変数をその上に置くと問題ありません。

そしてあなたはあなたが提案したようにあなたが静的キーワードであなたの変数を宣言する必要があるということは正しいです

于 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 に答える