所以在Class2之前调用Class 1。第1类中的Sfile包含文本,我验证了它。在class2中使用它时它是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;
}
}
答案 0 :(得分:2)
问题是Function1
声明了一个名为Sfile
的本地变量,它隐藏了静态字段。所以你给局部变量一个非空值,但不是静态字段。
像这样更改Function1
:
internal static void Function1()
{
Sfile = new StreamWriter(str1, true);
Sfile.Write(Text);
}
......现在你不会遇到同样的问题。由于其他原因,它仍然是可怕的代码,但至少Sfile
不会为空。