Für eine Type
, gibt es eine Eigenschaft IsClass
in C#, aber wie eine Type
ist eine Struktur zu entscheiden?Wie man einen Typ entscheidet, ist eine kundenspezifische Struktur?
Obwohl IsValueType
eine notwendige Bedingung ist, ist es offensichtlich nicht genug. Für eine int
ist auch ein Werttyp.
Jemand schlägt vor, den folgenden Code:
bool IsStruct = type.IsValueType && !type.IsEnum && !type.IsPrimitive;
Aber ich bin nicht sicher, ob es eine genaue Methode ist. Die Formel sollte den Unterschied zwischen struct und anderen Typen wie DateTime
, int
und array
s unterscheiden.
Da einige Freunde haben darauf hingewiesen, dass hier, ich meine benutzerdefinierte Struktur und nicht vordefinierte Typen, wie DateTime
.
Ich bin mir nicht sicher, ob ich die Frage verstehe. Eine DateTime ** ist ** eine Struktur. Warum würdest du dort falsch zurückkehren? –
Eigentlich ist Int auch ein Strukturtyp. Die Sprachspezifikation besagt, dass "C# eine Reihe von vordefinierten Strukturtypen bereitstellt, die als einfache Typen bezeichnet werden". –
Es wäre interessant zu wissen, warum es dich interessiert. Was machst du? Es könnte einen besseren Weg geben, um zu tun, was Sie wollen. –