J'ai un struct défini comme celui-ciObtenez les champs publics?
private struct Combinators
{
public const char DirectChild = '>';
public const char NextAdjacent = '+';
public const char NextSiblings = '~';
public const char Descendant = ' ';
}
Je veux utiliser la réflexion pour obtenir une liste de toutes les valeurs des champs public const char
dans la struct (aussi précis que possible). Comment puis je faire ça?
Vous ne voulez certainement pas passer en "null"? Ou est-ce autorisé parce que leur const? Vous pouvez faire mieux en utilisant 'GetFields (BindingFlags.Public)' non? Pouvez-vous le limiter aux champs 'char'? – mpen
@Mark, 'BindingFlags.Public' est la valeur par défaut, donc vous n'avez pas besoin de le passer. Et vous passez toujours la valeur null pour les champs 'const' ou' static' (puisque l'argument fait référence à une * instance * dont il n'y en a pas). –
L'insertion d'un '.Where (x => x.FieldType == typeof (char))' entre '.GetFields()' et '.ToDictionary (...)' devrait le limiter aux caractères. – mgbowen