Я долго размышлял об этом, но, похоже, не могу найти окончательного ответа. Всякий раз, когда я конвертирую целое число в строку с помощью метода ToString()
и выполняю анализ кода, я получаю следующее предупреждение:
CA1305: Microsoft. Глобализация: потому что
поведение int.ToString () может
варьируется в зависимости от текущего пользователя
Настройки языка, замените этот вызов в
Class.Method () с вызовом
'Int.toString (IFormatProvider).
Если результат 'int.ToString (
IFormatProvider) 'будет отображаться для
пользователь, укажите
«CultureInfo.CurrentCulture» как
Параметр «IFormatProvider».
В противном случае, если результат будет
хранятся и доступны с помощью программного обеспечения, таких как
как, когда он сохраняется на диск или
базу данных, укажите
'CultureInfo.InvariantCulture'.
Это очень известное общее предупреждение CA1305, которое отображается при каждом вызове метода с перегрузкой, который принимает параметр IFormatProvider
. Хотя это очень справедливое предупреждение почти во всех случаях, я не могу вспомнить ничего, что могло бы пойти не так при вызове значения по умолчанию ToString()
без какого-либо формата или formatprovider для целого числа. Поэтому, пожалуйста, если кто-нибудь знает что-нибудь, что может пойти не так, просветите меня. Я предполагаю, что должна быть веская причина для перегрузки IFormatProvider
.
Кстати, я делаю всегда звоню, используя перегрузку IFormatProvider
, потому что это, похоже, также дает выигрыш в производительности. Если у кого-либо есть проницательные комментарии по этому поводу, не стесняйтесь поделиться ими.