NullReferenceException未处理C#(使用BindingList)[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NullReferenceException未处理C#(使用BindingList)[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我正在尝试重新开发一个程序,我无法弄清楚导致错误的原因:

你调用的对象是空的。

private void setDataSource(BindingList<ListObject> list)
{
    if(this.dataGridView1.InvokeRequired)
    {
        SetDSCallback method = new SetDSCallback(this.setDataSource);
        base.Invoke(method, new object[] { list }); <-- Error Here
    }
    else
    {
        this.dataGridView1.DataSource = null;
        this.dataGridView1.DataSource = list;
        this.dataGridView1.Columns["ip"].HeaderText = "External IP";
        this.dataGridView1.Columns["macAddress"].HeaderText = "MAC Address";
        this.dataGridView1.Columns["ipSource"].HeaderText = "IP Source";
        this.dataGridView1.Columns["ipDest"].HeaderText = "IP Destination";
        this.dataGridView1.Columns["portSource"].HeaderText = "Source Port";
        this.dataGridView1.Columns["portDest"].HeaderText = "Destination Port";
        this.dataGridView1.Columns["protocol"].HeaderText = "Protocol";
        this.dataGridView1.Columns["label"].HeaderText = "Label";
        this.dataGridView1.Columns["country"].HeaderText = "Country";
        this.dataGridView1.Columns["state"].HeaderText = "State";
        this.dataGridView1.Columns["city"].HeaderText = "City";
        this.dataGridView1.Columns["packetCount"].HeaderText = "Packets";
    }
}

如果他们愿意提供帮助,我愿意将整个项目发送给某人。 ListObject类是一类吸气剂和二传手。

答案

将if,else块放入另一个if并检查if(list!= null)并将if else块放入其中。

    private void setDataSource(BindingList<ListObject> list)
        {
          if(list!=null)
           {
            if(this.dataGridView1.InvokeRequired)
            {
                SetDSCallback method = new SetDSCallback(this.setDataSource);
                base.Invoke(method, new object[] { list }); <-- Error Here
            }
            else
            {
                this.dataGridView1.DataSource = null;
                this.dataGridView1.DataSource = list;
                this.dataGridView1.Columns["ip"].HeaderText = "External IP";
                this.dataGridView1.Columns["macAddress"].HeaderText = "MAC Address";
                this.dataGridView1.Columns["ipSource"].HeaderText = "IP Source";
                this.dataGridView1.Columns["ipDest"].HeaderText = "IP Destination";
                this.dataGridView1.Columns["portSource"].HeaderText = "Source Port";
                this.dataGridView1.Columns["portDest"].HeaderText = "Destination Port";
                this.dataGridView1.Columns["protocol"].HeaderText = "Protocol";
                this.dataGridView1.Columns["label"].HeaderText = "Label";
                this.dataGridView1.Columns["country"].HeaderText = "Country";
                this.dataGridView1.Columns["state"].HeaderText = "State";
                this.dataGridView1.Columns["city"].HeaderText = "City";
                this.dataGridView1.Columns["packetCount"].HeaderText = "Packets";
            }
         }
         else
         {
          //handle if list is null
         }
        }

以上是关于NullReferenceException未处理C#(使用BindingList)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

错误提示:未处理的“System.NullReferenceException”类型的异常出现在 system.data.dll 中。 其他信息: 未将对象引用设置到对象的实例。

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

async/await 抛出 NullReferenceException 我们如何诊断我们在哪里搞砸了?

NullReferenceException:对象引用未设置为对象 Player.AnimatePlayer () 的实例(在 Assets/scripts/Player.cs:53)Player.U

未将对象引用设置到对象的实例

在设置列的宽度时,在数据网格视图上未显示Nullreferenceexception