Int32.Parse() VS Convert.ToInt32()? intID1 = Int32.Parse(myValue.ToString()); intID2 = Convert.ToInt32(myValue); Какой из них лучше и почему? Ответ 1 Они точно такие же, за исключением того, что Convert.ToInt32(null) возвращает 0. Convert.ToInt32 определяется следующим образом: public static int ToInt32(String value) { if (value == null) return 0; return Int32.Parse(value, CultureInfo.CurrentCulture); } Ответ 2 Ну, рефлектор говорит... public static int ToInt32(string value) { if (value == null) { return 0; } return int.Parse(value, CultureInfo.CurrentCulture); } public static int Parse(string s) { return Number.ParseInt32(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo); } Таким образом, они в основном одинаковы, за исключением того, что Convert.ToInt32() добавляет нулевую проверку. Ответ 3 Это зависит от того, что вы подразумеваете под "лучше", потому что "лучше" субъективно. Например, читаемость кода. Некоторые люди предпочитают видеть "Конвертировать" в свой код; другие предпочитают видеть "Парсис". Что касается скорости, они также примерно равны по этим критериям. Или вы всегда хотите вернуть значение? Как отмечали другие, ConvertTo возвращает 0 (ноль) для нулевых значений, тогда как вы не получаете эту опцию с Parse.
Ответ 1 Они точно такие же, за исключением того, что Convert.ToInt32(null) возвращает 0. Convert.ToInt32 определяется следующим образом: public static int ToInt32(String value) { if (value == null) return 0; return Int32.Parse(value, CultureInfo.CurrentCulture); }
Ответ 2 Ну, рефлектор говорит... public static int ToInt32(string value) { if (value == null) { return 0; } return int.Parse(value, CultureInfo.CurrentCulture); } public static int Parse(string s) { return Number.ParseInt32(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo); } Таким образом, они в основном одинаковы, за исключением того, что Convert.ToInt32() добавляет нулевую проверку.
Ответ 3 Это зависит от того, что вы подразумеваете под "лучше", потому что "лучше" субъективно. Например, читаемость кода. Некоторые люди предпочитают видеть "Конвертировать" в свой код; другие предпочитают видеть "Парсис". Что касается скорости, они также примерно равны по этим критериям. Или вы всегда хотите вернуть значение? Как отмечали другие, ConvertTo возвращает 0 (ноль) для нулевых значений, тогда как вы не получаете эту опцию с Parse.