2

MSDN 文档说只有值类型需要装箱,但这不适用于字符串,它是一种值类型,不需要装箱。我最初尝试过 Type.IsValueType,但由于它对字符串返回 true,因此我无法使用它来确定类型是否真的需要装箱。还有其他你知道的方法吗?字符串是唯一的例外吗?

更新:我在我的代码中犯了一个错误,我引用了一个 int 并且我认为它是一个字符串。字符串实际上是一种值类型,感谢您指出!

4

2 回答 2

8

你的前提不正确。String 实际上是一种引用类型,它在许多情况下恰好充当值类型。Type.IsValueType 是确定值是否需要装箱的最可靠方法。

不过,如果您使用可空值,我会小心的。

于 2009-09-04T21:11:13.890 回答
1

你在写原始的IL吗?这是您必须关注拳击的唯一情况。

于 2009-09-04T21:10:16.653 回答