我有一个关于转换方法“.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