C# 对象引用未设置为对象的实例
我昨天做了这个工作,但现在我必须更改一些内容ListActiveLogins.ActiveLogins为空,我做了什么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
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];