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

本文关键字:对象引用 实例 对象 设置 | 更新日期: 2023-09-27 17:49:51

我已经分配了两个字符串数组:

string[] SelectColumns = {},WhereColumns={};

它们都充满了数据项。例如SelectColumns。

当我去实现它们时,我得到了一个异常:对象引用未设置为对象的实例。我在下面使用它们:

for (int i = 0; i < SelectColumns.Length; i++)
{
    DPS._SelectCol[i] = SelectColumns[i];
}
for (int i = 0; i < WhereColumns.Length; i++)
{
    DPS._WhereCol[i] = WhereColumns[i];
}

这里DPS是类的对象,如下所示:

public class DefaultProfileSetting
{
    private string Server;
    public string _Server
    {
        get { return Server; }
        set { Server = value; }
    }
    private string Authentication;
    public string _Authentication
    {
        get { return Authentication; }
        set { Authentication = value; }
    }
    private string Login;
    public string _Login
    {
        get { return Login; }
        set { Login = value; }
    }
    private string Pass;
    public string _Pass
    {
        get { return Pass; }
        set { Pass = value; }
    }
    private string DB;
    public string _DB
    {
        get { return DB; }
        set { DB = value; }
    }
    private string Table;
    public string _Table
    {
        get { return Table; }
        set { Table = value; }
    }
    private string[] SelectCol;
    public string[] _SelectCol
    {
        get { return SelectCol; }
        set { SelectCol = value; }
    }
    private string[] WhereCol;
    public string[] _WhereCol
    {
        get { return WhereCol; }
        set { WhereCol = value; }
    }
}

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

您可能只有字符串数组引用_SelectCol,但不是实际的数组,并且需要实例化_SelectCol字符串数组来为其元素分配内存。

DPS._SelectCol = new string [SelectColumns.Length];
for (int i = 0; i < SelectColumns.Length; i++)
{
    DPS._SelectCol[i] = SelectColumns[i];
}

我在DefaultProfileSetting中没有看到任何地方初始化_WhereCol_SelectCol后面的字段,所以这些是null

至少你应该有:

private string[] SelectCol = new string[size];

虽然这些应该有一些初始种群或者你也会得到IndexOutOfBoundsException

很可能您的DPS数组属性没有初始化为正确的长度。您最好设置一个断点并调试您的解决方案,这样您就可以自己看到哪里出了问题。

如果你说SelectColumns和whereccolumns已经填满了值,那么我打赌DPS。_SelectCol会导致问题。

必须将数组初始化为合适的大小。比如:DPS。

如果你离开你的数组,并开始使用列表,那么你就不会有这些问题了。