Почему typeof(Array).IsArray возвращает false?C#

Место общения программистов C#
Ответить
Anonymous
 Почему typeof(Array).IsArray возвращает false?

Сообщение Anonymous »

Я создаю генератор кода, который генерирует классы из схемы. Тип из такой схемы может иметь повторяющиеся элементы, что позволяет использовать несколько строк текста или что-то в этом роде. Я хочу решить эту проблему, создав свойство при первом появлении, а затем поместив это свойство в массив при последующих появлениях.
К моему удивлению, при создании класса я вижу, что иметь поле-член и свойство базового типа, а не типа Array!
Здесь показана часть этого кода, в которой я превращаю резервное поле в массив:

Код: Выделить всё

var memberFieldType = new CodeTypeReference(typeof(Array)) { ArrayElementType = property.MemberField.Type };
property.MemberField = new CodeMemberField(memberFieldType, property.MemberField.Name);
property.MemberField.InitExpression = new CodeArrayCreateExpression(memberFieldType, property.Count);

Дальнейшее расследование показало мне, что typeof(Array).IsArray возвращает false, и это приводит к тому, что CSharpCodeGenerator генерирует неправильный тип для поля-члена и свойства.< /p>
Кто-нибудь знает, почему typeof(Array).IsArray возвращает false?

Подробнее здесь: https://stackoverflow.com/questions/793 ... turn-false
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»