2010-03-25 4 views
3

Я использую Stylecop для создания некоторых пользовательских правил, и я пытаюсь определить, есть ли у меня двойной или плавающий.Stylecop - определение, если Double или Float

Я могу пройти через утверждение и получить CSTokenType. CSTokenType является номером и может считаться строкой. Но поскольку это просто номер, у меня нет реального способа узнать, является ли это int, float, long, double или что-то еще.

Как можно проверить, что такое примитивный тип?

ответ

2

EDIT

Чтобы решить, является ли число буквальным является двойной или плавать, вы должны проверить, и если да, то какой суффикс присутствует в CsToken.Text (когда CsTokenType == CsTokenType.Number).

Некоторые примеры:

  • 15 представляет собой целое число
  • 0.15 является двойной
  • 0.15d является двойной
  • 0.15f является флоат
  • 0.15m десятичное

источник: http://msdn.microsoft.com/en-us/library/aa691085(v=VS.71).aspx и http://msdn.microsoft.com/en-us/library/aa664674(v=VS.71).aspx

+0

В моем CsToken у меня есть CsTokenType и CsTokenClass. Оба показывают «Номер», который, конечно, по-прежнему остается проблемой. Если я не использую его неправильным способом –

+0

, например. двойной х = 0,15; О чем мы здесь говорим? «двойная» часть или 0,15? – Femaref

+0

То, как работает токен, это CSToken token; token.Text = 0,15; token.CsTokenType = Number; token.CsTokenClass = Number; –