Warum gibt typeof(Array).IsArray false zurück?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Warum gibt typeof(Array).IsArray false zurück?

Post by Guest »

Ich erstelle einen Codegenerator, der Klassen aus einem Schema generiert. Ein Typ aus einem solchen Schema könnte doppelte Mitglieder haben, die mehrere Textzeilen oder ähnliches zulassen. Ich möchte das lösen, indem ich beim ersten Vorkommen eine Eigenschaft erstelle und diese Eigenschaft dann bei weiteren Vorkommen in ein Array hochstufe.
Zu meiner Überraschung kann ich beim Ausgeben der Klasse sehen, dass i Ich habe ein Mitgliedsfeld und eine Eigenschaft vom Basistyp und nicht vom Typ Array!
Der Teil dieses Codes, in dem ich ein Hintergrundfeld in ein Array umwandele, wird hier gezeigt:

Code: Select all

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);

Weitere Untersuchungen ergaben, dass „typeof(Array).IsArray „false“ zurückgibt und dass der CSharpCodeGenerator den falschen Typ für das Mitgliedsfeld und die Eigenschaft generiert.< /p>
Hat jemand eine Idee, warum typeof(Array).IsArray false zurückgibt?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post