(Противоположность David Hanak.)
Даже при том, что согласно измерениям cobbal, № 1, кажется, является самым быстрым, я настоятельно рекомендовал бы использование Integer.toString (). Моя причина этого состоит в том, что этот вызов явно содержит тип аргумента, поэтому если позже Вы решаете изменить его от интервала для удвоения, ясно, что этот вызов изменился. Вы сделали бы то же, если бы это был двоичный формат, не так ли? Выигрыш в быстродействии на № 1 по сравнению с № 2 только минимален, и как все мы знаем, "преждевременная оптимизация является корнем всего зла".
Устаревший атрибут
- "магия компилятора" - вы не можете сделать что-то подобное самостоятельно, не изменив компилятор. Однако, как всегда, есть обходные пути - например, посмотрите этот и этот поток.
Использование PostSharp: Создание настраиваемого предупреждения о времени компиляции C #
Любые атрибуты, которые демонстрируют это внутри компилятора, являются особыми случаями. Поведение [Устарело]
описано, например, в спецификации C # (17.4.3).
Вы можете написать собственное правило FxCop ?