我有以下两种转换int
为short?
.
- 如果值不在短范围内,则第一个失败。
- 第二种方法有效,但它有一个不必要的
conversion to string
.
有没有更好的方法?
编辑:
从下面的答案:
Int16 只是 Int32 的一个子集,因此您不需要任何转换为“中间”类型。
代码
//Approach 1
int vIn = 123456789;
short? vOut = Convert.ToInt16(vIn);
//Value was either too large or too small for an Int16.
//Approach 2
short? vOut2 = null;
int vIn2 = 123456789;
short number;
string characterRepresentationOfInt = vIn2.ToString();
bool result = Int16.TryParse(characterRepresentationOfInt, out number);
if (result)
{
vOut2 = number;
}
参考: