.Net - 转换或转换盒装字节?,简称?还是int?到int?

时间:2011-10-26 19:55:12

标签: c# .net casting int nullable

如果我有引用objectbyte?short?的{​​{1}}引用,是否有办法无条件地将该对象引用转换为int?没有为每个案例编写单独的代码?

例如:

int?

2 个答案:

答案 0 :(得分:9)

我使用Convert.ToInt32(object)

object o = ...; // Boxing...
int? x = o == null ? (int?) null : Convert.ToInt32(o);

请注意,当您点击int?short?byte?时,您总是会得到一个空引用或一个盒装的非可空值 - 这里没有“盒装可空值“就是这样。

Convert.ToInt32适用于您提到的所有盒装类型 - 虽然它可用于字符串“42”等等。这是一个问题吗?

答案 1 :(得分:1)

var i = (anObject as IConvertible).ToInt32(null);