Jon*_*ell 7 c# int locale nullable type-conversion
我正在将a转换nullable integer为a string,并且Resharper警告我使用InvariantCulture.
shipment.ShipmentID.ToString()
快速Alt-Enter,稍后输入,给我这个:
shipment.ShipmentID.ToString(CultureInfo.InvariantCulture)
不幸的是,Resharper并不满意,并提出同样的建议,这对我来说没有意义.
shipment.ShipmentID.ToString(CultureInfo.InvariantCulture, 
                                CultureInfo.InvariantCulture)
nullable int上的ToString()将不会构建,给出一个错误,指出No overload方法'ToString'需要1个参数.
不可为空的整数表现不同.
int requiredInt = 3;
// no Resharper or compiler warning
var stringFromRequiredInt = requiredInt.ToString(CultureInfo.InvariantCulture); 
如何将a转换为nullable int对string不同语言环境中的计算机安全的应该怎么做?
pho*_*oog 12
Nullable<T>没有ToString()带参数的重载; ReSharper并没有很好地处理这种情况.
由于default(Nullable<int>).ToString()回报率string.Empty,可以使ReSharper的快乐是这样的:
shipment.ShipmentID.HasValue 
        ? shipment.ShipmentID.Value.ToString(CultureInfo.InvariantCulture) : ""
或者:
shipment.ShipmentID != null 
        ? ((int)shipment.ShipmentID).ToString(CultureInfo.InvariantCulture) : ""