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

本文关键字:静态 变量 调用 同类 | 更新日期: 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不会为空。