我在写个程序时,遇到这样的问题,现把它简化出来..代码如下:private class B //如果是 private struct B 就可以...为什么????
{
private int a;
public int A
{
get
{
return a;
}
set
{
a = value;
}
} } private void Form1_Load(object sender, EventArgs e)
{
B[,] b = new B[4, 4];
b[0, 0].A = 2;
}运行时,提示错误为: "未将对象引用设置到对象的实例.",如果改为 private struct B 就没有问题,为什么会出现这样的错误啊..谢谢!!~~~
{
private int a;
public int A
{
get
{
return a;
}
set
{
a = value;
}
} } private void Form1_Load(object sender, EventArgs e)
{
B[,] b = new B[4, 4];
b[0, 0].A = 2;
}运行时,提示错误为: "未将对象引用设置到对象的实例.",如果改为 private struct B 就没有问题,为什么会出现这样的错误啊..谢谢!!~~~
这里你new了数组
但是数组的元素 b[0, 0]只是B对象的实例的引用,它并没有被实例化
b[0, 0]=new B();应该就可以了
public class MyClass
{ private class B
{
private int a;
public int A
{
get {return a; }
set {a = value; }
} }
public static void Main()
{
B[,] b =new B[4, 4];
b[0,0] =new B();
b[0,0].A=1;
Console.WriteLine(""+b[0,0].A);
Console.Read();
}
}