来自不同类的静态变量调用

时间:2013-07-26 20:01:58

标签: c# class static null

所以在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;         
       }
    }

1 个答案:

答案 0 :(得分:2)

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

像这样更改Function1

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

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