我想将值设置为我的结构编写的C#和我得到一个错误。用两个级别数组c填充复杂结构#
private struct pack2
{
public float var;
public float [3]var2;
}
private struct pack
{
public pack2[] ster;
}
private void recv()
{
pack mystruct;
mystruct.ster = new pack2[4]; // Because I need to declare 4 structures of pack2
mystruct.ster[0].var = 2F;
mystruct.ster[0].var[0] = 1F; // error
}
错误:NullReferenceException异常是未处理的,ADDINFO:对象引用不设置到对象
我怎么能解决这个问题的一个实例?
解决:
private struct pack2
{
public float var;
public float [3]var2;
}
private struct pack
{
public pack2[] ster;
}
private void recv()
{
pack mystruct;
mystruct.ster = new pack2[4]; // Because I need to declare 4 structures of pack2
mystruct.ster[0].var = 2F;
mystruct.ster[0].var2 = new float[3]; // Because I need 3 floats on each pack2
mystruct.ster[1].var2 = new float[3]; // Because I need 3 floats on each pack2
mystruct.ster[2].var2 = new float[3]; // Because I need 3 floats on each pack2
mystruct.ster[3].var2 = new float[3]; // Because I need 3 floats on each pack2
mystruct.ster[0].var2[0] = 1F;
mystruct.ster[0].var2[1] = 1F;
mystruct.ster[0].var2[2] = 1F;
}
我希望这将是有用的人。感谢alex
可变的结构是邪恶的。那些应该是阶级。 – SLaks 2014-11-03 03:59:16
我想回应SLaks所说的,并提供Microsoft的这种官方指导:[在类和结构之间选择](http://msdn.microsoft.com/en-us/library/ms229017.aspx) – 2014-11-03 04:02:14