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

本文关键字:实例 对象 设置 对象引用 | 更新日期: 2023-09-27 18:00:44

我昨天处理了这个问题,但现在ListActiveLogins.ActivLogins为空,我该怎么办?

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];
    }
Process[] ActiveLogins = new Process[loginCount];

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

ActiveLogins = new Process[loginCount];