我在我的类中声明了一个静态变量:
private static DirectoryInfo _extractionFolder;
在某些功能中我将其更改为:
_extractionFolder = new DirectoryInfo(@"C:\TEST");
然后在几行上的相同功能下我可以再次更改此变量吗?
我正在尝试它并且它似乎没有改变。或者是我有一个艰难的一天。
答案 0 :(得分:2)
该代码甚至无法编译 - 您正在尝试将字符串值分配给DirectoryInfo
变量。
我怀疑发生的事情是你实际上声明了一个隐藏字符串变量的 local 变量,如下所示:
private static DirectoryInfo _extractionFolder;
public void Foo()
{
string _extractionFolder;
...
_extractionFolder = @"C:\TEST"; // Modifies local variable, not static one
}
但是,可变静态变量很少是一个好主意,并且由于线程问题需要仔细处理它们。
答案 1 :(得分:1)
>还是我有一个艰难的一天?
我认为这是艰难的一天:)您应该能够像任何其他变量一样设置其值。
答案 2 :(得分:1)
就静态变量而言,你应该能够改变它。一旦设置了变量,您设置的内容或如何使用变量一定有问题。
答案 3 :(得分:1)
你的意思是
_extractionFolder = new DirectoryInfo(@"c:\TEST");
然后您可以访问其属性,稍后在执行另一个“新”后,您可以获取其他目录的信息。这是你想要做的吗?