intID1 = Int32.Parse(myValue.ToString());
intID2 = Convert.ToInt32(myValue);
Run Code Online (Sandbox Code Playgroud)
Which one is better and why?
SLa*_*aks 37
它们完全相同,除了Convert.ToInt32(null)返回0.
Convert.ToInt32 定义如下:
public static int ToInt32(String value) {
if (value == null)
return 0;
return Int32.Parse(value, CultureInfo.CurrentCulture);
}
Run Code Online (Sandbox Code Playgroud)
那么,Reflector说......
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);
}
Run Code Online (Sandbox Code Playgroud)
因此它们基本相同,只是Convert.ToInt32()添加了空检查.