读书人

请大伙帮忙看看下面的一小段关于对象数

发布时间: 2011-12-14 23:20:17 作者: rapoo

请大家帮忙看看下面的一小段关于对象数组的程序
我在写个程序时,遇到这样的问题,现把它简化出来..代码如下:

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 就没有问题,为什么会出现这样的错误啊..谢谢!!~~~


[解决办法]
你只new了数组,而没有new类的实例

B[,] b = new B[4, 4];
这里你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();
}

}
[解决办法]
只能是实数型的才可以B[,];Class is not a Value Type.

[解决办法]
对像实例化一样就可以的

读书人网 >C#

热点推荐