Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么是;对象引用未设置为对象的实例;什么意思?_C# - Fatal编程技术网

C# 什么是;对象引用未设置为对象的实例;什么意思?

C# 什么是;对象引用未设置为对象的实例;什么意思?,c#,C#,在这句话中,我得到了一个错误: 对象引用未设置为 对象的实例 你有一个好主意。您的其中一个对象为null,无法使用: strArraylist1 组合框1 文本框4 使用调试器,设置断点,将鼠标悬停在每个对象上以查看哪个对象。一旦您找到它,请确保在使用它时已实例化。我猜strArraylist1是null,或者它的一个项是null。如果尝试对null的对象执行方法,则会出现该错误 例如,这将抛出未设置为对象错误实例的对象引用 以下方法可以很好地工作: string[] strArrayLis

在这句话中,我得到了一个错误:


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

你有一个好主意。您的其中一个对象为
null
,无法使用:

  • strArraylist1
  • 组合框1
  • 文本框4

使用调试器,设置断点,将鼠标悬停在每个对象上以查看哪个对象。一旦您找到它,请确保在使用它时已实例化。

我猜
strArraylist1
null
,或者它的一个项是
null
。如果尝试对
null
的对象执行方法,则会出现该错误

例如,这将抛出未设置为对象错误实例的对象引用

以下方法可以很好地工作:

string[] strArrayList1 = new string[] { null, "Bar" };
string result = strArrayList[0].Split(delimeter, 5); // Error will occur here

其他可能性是
comboBox1
textBox4
为空。虽然它们可能是表单上的控件,但这不太可能,所以我打赌
strArrayList1
是罪魁祸首,所以请检查
strArrayList1
的内容。根据我的例子,如果你在一个空项上调用
Split
,那就是罪魁祸首。

这意味着
的结果。strArraylist1[this.comboBox1.SelectedIndex]
为空,所以当你试图调用
Split(delimeter,5)
它被调用的对象为空,因此出现异常。

“Object reference not set to a instance of a Object”(对象引用未设置为对象的实例)表示您正试图使用与变量关联的值作为对象引用,但该值为null,而不是指向对象。这意味着您对该假定对象执行的任何操作都将无效,因为您实际上正在执行:null.Something()

考虑这一点:

string[] strArrayList1 = new string[] { "Foo", "Bar" };
string result = strArrayList1[0]; // Result will be "Foo"
这不起作用,因为变量splitstr不包含对象,它包含null。 然后,当您继续执行splitstr[1]时,您实际上尝试执行null[1]——这是行不通的,因为null不是数组,更不用说其中至少包含两个元素的数组了

在您的示例中,可以将空值存储在:

strArraylist1 这是comboBox1 strArraylist1[this.comboBox1.SelectedIndex] 这是文本框4

代码的另一个潜在问题是,您可能会超出splitstr和strArraylist1数组的界限

检查:

splitstr将始终至少保存两个元素(因为[1])
strArraylist1将始终保持足够的容量来容纳此.comboBox1.SelectedIndex生成的数字。

在给定代码的第一行添加断点,并查找空值或超出范围的索引。这将为您提供捕获错误的线索。

我在WPF中遇到此问题,我的问题是由根inst引起的在使用项目根时,它使用了类的根,所有在类中可见的对象,但在我调用它时,它没有传递给类根,解决方法是通过类中的函数包含对象

string[] splitstr = null;
this.textBox4.Text = splitstr[1];
string[] splitstr = null;
this.textBox4.Text = splitstr[1];
//Class 
public void call(object b)
    {
     //Do stuff
    }
//main Thread 
 Core Menu = new Core();
 Menu.call(Object);