Pour un Type
, il existe une propriété IsClass
en C#, mais comment décider un Type
est une structure?Comment décider qu'un Type est une structure personnalisée?
Bien que IsValueType
soit une condition nécessaire, elle n'est évidemment pas suffisante. Pour un int
est également un type de valeur.
Quelqu'un suggère le code suivant:
bool IsStruct = type.IsValueType && !type.IsEnum && !type.IsPrimitive;
Mais je ne suis pas sûr que ce soit une méthode précise. La formule devrait indiquer la différence entre struct et d'autres types tels que DateTime
, int
et array
s.
Comme certains amis ont souligné que, ici, je veux dire struct défini par l'utilisateur et non prédéfinis types, tels que DateTime
.
Je ne suis pas sûr de comprendre la question. Un DateTime ** est ** une structure. Pourquoi retourneriez-vous faux là-bas? –
Actuellement, int est également un type struct. La spécification de langage stipule que "C# fournit un ensemble de types de structures prédéfinis appelés les types simples". –
Il serait intéressant de savoir pourquoi vous vous en souciez. Qu'est-ce que tu fais? Il pourrait y avoir une meilleure façon de faire ce que vous voulez. –