Int32.Parse() VS Convert.ToInt32()?

Nan*_* HE 25 c#

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)

  • @Nano:http://referencesource.microsoft.com/或http://en.wikipedia.org/wiki/Shared_Source_Common_Language_Infrastructure (4认同)
  • Reflector也是一个选项:http://www.red-gate.com/products/reflector/ (2认同)

Ada*_*m P 6

那么,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()添加了空检查.