2010-03-25 10 views
3

J'utilise Stylecop pour créer des règles personnalisées et j'essaie de déterminer si j'ai un double ou un flottant.Stylecop - Détermine si Double ou Float

Je suis capable de parcourir l'instruction et d'obtenir un CSTokenType. Le CSTokenType est un nombre et peut être lu comme une chaîne. Mais puisque c'est juste un nombre, je n'ai aucun moyen de savoir si c'est un int, un flotteur, un long, un double ou autre chose.

Tous les ides sur la façon dont je peux vérifier pour voir ce que le type primitif est?

Répondre

2

EDIT

Pour décider si un littéral est un double ou un flotteur, vous devez vérifier si, et si oui, quel suffixe est présent dans CsToken.Text (quand CsTokenType == CsTokenType.Number).

Quelques exemples:

  • 15 est un nombre entier
  • 0,15 est une double
  • 0,15D est une double
  • 0.15f est un flotteur
  • 0.15m est un nombre décimal

source: http://msdn.microsoft.com/en-us/library/aa691085(v=VS.71).aspx et http://msdn.microsoft.com/en-us/library/aa664674(v=VS.71).aspx

+0

Dans mon CsToken j'ai CsTokenType et CsTokenClass. Les deux montrent "Numéro", ce qui est bien sûr toujours le problème. Sauf si je l'utilise dans le mauvais sens –

+0

par exemple. double x = 0,15; De quoi parle-t-on ici? la partie "double", ou le 0.15? – Femaref

+0

Le fonctionnement du jeton est Jeton CSToken; jeton.Texte = 0,15; token.CsTokenType = Nombre; token.CsTokenClass = Nombre; –