intID1 = Int32.Parse(myValue.ToString()); intID2 = Convert.ToInt32(myValue);Int32.Parse()VS Convert.ToInt32()?
哪一個更好?爲什麼?
intID1 = Int32.Parse(myValue.ToString()); intID2 = Convert.ToInt32(myValue);Int32.Parse()VS Convert.ToInt32()?
哪一個更好?爲什麼?
它們完全一樣,只是Convert.ToInt32(null)
返回0
。
Convert.ToInt32
定義如下:
public static int ToInt32(String value) {
if (value == null)
return 0;
return Int32.Parse(value, CultureInfo.CurrentCulture);
}
你在哪裏找到ToInt32()函數的源代碼?我GOOGLE了MSDN,無法找到像你輸入的細節。 :-) – 2010-09-15 01:07:08
@Nano:http://referencesource.microsoft.com/或http://en.wikipedia.org/wiki/Shared_Source_Common_Language_Infrastructure – SLaks 2010-09-15 01:08:56
另外Reflector是一個選項:http://www.red-gate.com/產品/反射/ – 2010-09-15 01:22:32
好,反射說...
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()
同樣不增加的空檢查。
可能重複的[.Net解析與轉換](http://stackoverflow.com/questions/18465/net-parse-versus-convert) – JasonMArcher 2014-10-20 16:44:08