class foo {
int foo1;
bar[] bars = new bar[64];
}
class bar {
int bar1;
int bar2;
}
Я пытаюсь прочитать все в классе foo
(ранее был структурой, но не мог создать экземпляр массива в структуре). Но это дает мне ошибку, говоря, что он не может рассчитать размер для bar[]
, почему это и как я могу это сделать?SizeOf массив как поле?
foo bla = new foo();
foreach (var field in
typeof(foo).GetFields(BindingFlags.Instance |
BindingFlags.NonPublic |
BindingFlags.Public)) {
Console.WriteLine("({0}) {1} = {2} (size: {3})", field.FieldType, field.Name, field.GetValue(bla), Marshal.SizeOf(field.FieldType));
}
Как я могу проверить размер массива вручную? Я сделал так, чтобы он мог видеть, какой тип массива он имеет и проверяет размер этих типов. Но как мне получить длину массива из поля? – user1768788