例如,在以下情況下我應該使用Convert類嗎?
Convert.Int64(string somstring)
或
long.Parse(string somstring);
似乎做同樣的工作內容。哪一個更好?
感謝
例如,在以下情況下我應該使用Convert類嗎?
Convert.Int64(string somstring)
或
long.Parse(string somstring);
似乎做同樣的工作內容。哪一個更好?
感謝
如果你看看來源,Convert.ToInt64(string)
只需調用long.Parse
,但首先檢查字符串不是null
。
我會推薦呼叫long.Parse
,因爲它使意圖(字符串解析)更清晰。
如果您要轉換的類型從可能會更改,我建議使用Convert
類。 (或者如果你從object
轉換)
Convert.Int64
調用long.Parse
內部,之前只是做一個空檢查。這裏的膽量:
if (value == null)
{
return 0L;
}
return long.Parse(value, CultureInfo.CurrentCulture);
如果你需要空檢查,Convert.Int64是更安全的,這是所有,否則沒有區別。
再次打我一秒鐘...... :-) – SLaks 2010-03-01 21:58:24
Convert.Int64實際上調用long.Parse與CultureInfo.CurrentCulture後首先對字符串進行空檢查。所以只要你知道字符串不會爲空,你可以保存這個步驟,並調用long.Parse
只是爲了完整性的其他答案,不要忘記long.TryParse這通常是更安全的,如果你是不確定輸入的字符串格式。
感謝您的回答+1。你能告訴我在哪裏可以找到某些方法的c#源代碼嗎? – road242 2010-03-01 22:08:11
Reflector(http://www.red-gate.com/products/reflector/)或.Net Reference Source(http://referencesource.microsoft.com/) – SLaks 2010-03-01 22:12:01