0

クラスで静的変数を次のように宣言しています:

private static DirectoryInfo _extractionFolder;

一部の関数では、これを次のように変更します。

_extractionFolder = new DirectoryInfo(@"C:\TEST");

次に、数行下の同じ関数で、この変数を再度変更できますか?

私はそれを試していますが、それは変わらないようです。

4

4 に答える 4

2

そのコードはコンパイルすらしません-あなたは変数に文字列値を割り当てようとしていDirectoryInfoます。

何が起こったのかは、次のように、文字列変数を非表示にしているローカル変数を実際に宣言したことだと思います。

private static DirectoryInfo _extractionFolder;

public void Foo()
{
    string _extractionFolder;
    ...
    _extractionFolder = @"C:\TEST"; // Modifies local variable, not static one
}

ただし、可変の静的変数が良いアイデアになることはめったになく、スレッド化の懸念があるため、それらへのアクセスは慎重に処理する必要があります。

于 2012-05-02T16:34:29.760 に答える
1

静的変数に関する限り、それを変更できるはずです。設定内容、または設定後の変数の使用方法に問題があるはずです。

于 2012-05-02T16:34:16.960 に答える
1

もしかして

_extractionFolder = new DirectoryInfo(@"c:\TEST");

次に、そのプロパティにアクセスし、後で別の「新規」を実行した後、別のディレクトリの情報を取得できます。それはあなたがやろうとしていることですか?

于 2012-05-02T16:34:54.670 に答える
1

>それとも私は大変な一日を過ごしていますか?

大まかな日だと思います:)他の変数と同じようにその値を設定できるはずです。

于 2012-05-02T16:32:24.223 に答える