C# 对象引用未设置为对象的实例

C# 对象引用未设置为对象的实例,c#,nullreferenceexception,C#,Nullreferenceexception,我昨天做了这个工作,但现在我必须更改一些内容ListActiveLogins.ActiveLogins为空,我做了什么 public partial class Form1 : Form { public Form1() { InitializeComponent(); new ListLogin(2); Console.WriteLine(ListLogin.LoginList.Length); Console.W

我昨天做了这个工作,但现在我必须更改一些内容ListActiveLogins.ActiveLogins为空,我做了什么

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        new ListLogin(2);
        Console.WriteLine(ListLogin.LoginList.Length);
        Console.WriteLine(ListLogin.loginC);
        new ListActiveLogins(2);
        Console.WriteLine(ListActiveLogins.ActiveLogins.Length);
    }
}

public class ListLogin
{
    public static int loginC;
    public static string[,] LoginList;
    public ListLogin(int loginCount)
    {
        LoginList = new string[loginCount, 3];
        loginC = loginCount;
    }
    public int LoginCount
    {
        get { return loginC; }
    }
    public string this[int row, int col]
    {
        get
        {
            return LoginList[row, col];
        }
        set
        {
            LoginList[row, col] = value;
        }
    }
}

public class ListActiveLogins
{
    public static Process[] ActiveLogins;
    public ListActiveLogins(int loginCount)
    {
        Process[] ActiveLogins = new Process[loginCount];
    }
    public Process this[int i]
    {
        get
        {
            return ActiveLogins[i];
        }
        set
        {
            ActiveLogins[i] = value;
        }
    }
}

您正在构造函数中创建一个单独的局部变量。

问题是您在ListActiveLogins构造函数中声明了一个局部变量

这应该可以解决它

public class ListActiveLogins
{
    public static Process[] ActiveLogins;
    public ListActiveLogins(int loginCount)
    {
        ActiveLogins = new Process[loginCount];
    }
正在重新声明为局部变量。将其更改为:

ActiveLogins = new Process[loginCount];

这是一个非常糟糕的设计。它应该做什么?我一周前才开始做,是的,我把我放在这里的副本也弄糟了哈哈,public ListActiveLoginsint loginCount在我的真实代码中是静态的,不知道我是怎么做到的。几乎所有NullReferenceException的情况都是一样的。请看一些提示。呸,我是如何添加额外的过程[]的,很明显,现在你指出了它,一切又恢复了正常。我很高兴我们能提供帮助。在stack overflow,表示感激的一个好方法是接受最有用的答案,并在可能的时候向上投票。它还让其他有帮助的人知道你的问题已经解决了。干杯
ActiveLogins = new Process[loginCount];