如何确定是否需要打包类型?

时间:2009-09-04 21:05:17

标签: .net reflection boxing value-type

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

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

2 个答案:

答案 0 :(得分:8)

你的前提是不正确的。 String实际上是一种引用类型,在许多场景中恰好就像一个值类型。 Type.IsValueType是确定某个值是否需要加框的最可靠方法。

如果你使用可以为空的值,我会小心。

答案 1 :(得分:1)

你在写原始IL吗?这是你唯一需要关注拳击的案例。