我在我的类中声明了一个静态变量:
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");
然后您可以访问它的属性,稍后在执行另一个“新”操作后,您可以获得不同目录的信息。那是你想要做的吗?