Я хочу установить значения в мою структуру, написанную en 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
Я хочу повторить то, что сказал Слэкс, и предоставить это официальное руководство от Microsoft: [Выбор между классом и структурой] (http://msdn.microsoft.com/en-us/library/ms229017.aspx) –