我有一個關於轉換方法「.ToString()」的一般問題。 起初,我用這個語句轉換:「Convert.ToString(Nullable <int>)」和「Nullable <int> .ToString()」之間的區別?
Nullable<int> SomeProperty;
string test = SomeProperty.ToString();
到這裏是沒有問題的,但之後,我想「CultureInfo.InvariantCulture」添加到ToString()方法。它不起作用,因爲Nullable的.ToString()沒有參數。爲什麼Resharper建議將CultureInfo信息插入我?
之後,我嘗試了另一種方式,並使用此聲明:
Nullable<int> SomeProperty;
string test = Convert.ToString(SomeProperty, CultureInfo.InvariantCulture);
此語句工作正常,但現在我想明白了第一和第二條語句之間的差異的技術?
['int'實現'IFormattable'](http://msdn.microsoft.com/en-us/library/system.int32.aspx),所以這是錯誤的,這不會調用'ToString( )',這將會調用'ToString(IFormatProvider)'。 – hvd 2013-03-01 07:38:17
但它不是關於'int',它關於'可空的' –
MarcinJuraszek
2013-03-01 07:38:47
盒裝的'可空'是一個盒裝的'int'。 'Convert.ToString'不能說它最初來自可空類型。 –
hvd
2013-03-01 07:39:16