来自不同类的静态变量调用
本文关键字:静态 变量 调用 同类 | 更新日期: 2023-09-27 18:25:03
因此在Class2之前调用Class1。类1中的Sfile包含文本,我对此进行了验证。在类2中使用它时,它为null。我知道我错过了什么,只是不记得是什么。谢谢
public static Class1{
public static StreamWriter Sfile;
internal static void Function1(){
StreamWriter Sfile = new StreamWriter(str1, true);
Sfile.Write(Text)
}
}
public partial class Class2{
private void Function2(){
StreamWriter PrintField=Class1.Sfile;
//Sfile is null;
}
}
问题是Function1
声明了一个名为Sfile
的局部变量,该变量隐藏了静态字段。因此,您给了局部变量一个非null值,但没有给静态字段。
像这样更改Function1
:
internal static void Function1()
{
Sfile = new StreamWriter(str1, true);
Sfile.Write(Text);
}
现在你不会遇到同样的问题了。由于其他原因,这仍然是一个糟糕的代码,但至少Sfile
不会为空。