你调用的对象是空的

时间:2011-06-30 22:43:33

标签: c# nullreferenceexception

我昨天有这个工作,但我现在必须改变一些事情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;
        }
    }
}

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

这应该解决它。

public class ListActiveLogins
{
    public static Process[] ActiveLogins;
    public ListActiveLogins(int loginCount)
    {
        ActiveLogins = new Process[loginCount];
    }

答案 2 :(得分:1)

Process[] ActiveLogins = new Process[loginCount];

正被重新声明为局部变量。将其更改为:

ActiveLogins = new Process[loginCount];