0

所以 1 类在 2 类之前被调用。第 1 类中的 Sfile 包含文本,我对此进行了验证。在 class2 中使用它时,它为空。我知道我错过了什么,只是不记得是什么。谢谢!

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;         
       }
    }
4

1 回答 1

2

问题是Function1声明了一个名为 的局部变量Sfile,它隐藏了静态字段。所以你给了局部变量一个非空值,而不是静态字段。

像这样改变Function1

internal static void Function1()
{
    Sfile = new StreamWriter(str1, true);
    Sfile.Write(Text);
}

...现在你不会遇到同样的问题。由于其他原因,它仍然是可怕的代码,但至少Sfile不会为空。

于 2013-07-26T20:05:43.500 回答