クラスで静的変数を次のように宣言しています:
private static DirectoryInfo _extractionFolder;
一部の関数では、これを次のように変更します。
_extractionFolder = new DirectoryInfo(@"C:\TEST");
次に、数行下の同じ関数で、この変数を再度変更できますか?
私はそれを試していますが、それは変わらないようです。
そのコードはコンパイルすらしません-あなたは変数に文字列値を割り当てようとしていDirectoryInfo
ます。
何が起こったのかは、次のように、文字列変数を非表示にしているローカル変数を実際に宣言したことだと思います。
private static DirectoryInfo _extractionFolder;
public void Foo()
{
string _extractionFolder;
...
_extractionFolder = @"C:\TEST"; // Modifies local variable, not static one
}
ただし、可変の静的変数が良いアイデアになることはめったになく、スレッド化の懸念があるため、それらへのアクセスは慎重に処理する必要があります。
静的変数に関する限り、それを変更できるはずです。設定内容、または設定後の変数の使用方法に問題があるはずです。
もしかして
_extractionFolder = new DirectoryInfo(@"c:\TEST");
次に、そのプロパティにアクセスし、後で別の「新規」を実行した後、別のディレクトリの情報を取得できます。それはあなたがやろうとしていることですか?
>それとも私は大変な一日を過ごしていますか?
大まかな日だと思います:)他の変数と同じようにその値を設定できるはずです。