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);