Методы Convert.ToXXX()
предназначены для объектов, которые могут иметь правильный или подобный тип, в то время как .Parse()
и .TryParse()
специально для строк:
//o is actually a boxed int
object o = 12345;
//unboxes it
int castVal = (int) 12345;
//o is a boxed enum
object o = MyEnum.ValueA;
//this will get the underlying int of ValueA
int convVal = Convert.ToInt32( o );
//now we have a string
string s = "12345";
//this will throw an exception if s can't be parsed
int parseVal = int.Parse( s );
//alternatively:
int tryVal;
if( int.TryParse( s, out tryVal ) ) {
//do something with tryVal
}
Если вы компилируете с флагами оптимизации, TryParse работает очень быстро - это лучший способ получить число из строки. Однако, если у вас есть объект, который может быть int или может быть строкой, Convert.ToInt32 быстрее.