2

MSDN のドキュメントでは、ボックス化が必要なのは値型だけであると書かれていますが、これは文字列には当てはまりません。これは値型であり、ボックス化する必要はありません。最初に Type.IsValueType を試しましたが、文字列に対して true を返すため、型を本当にボックス化する必要があるかどうかを判断するために使用することはできません。あなたが知っている他の方法はありますか?文字列だけが例外ですか?

更新: int を参照しているコードで間違いを犯し、それが文字列だと思いました。文字列は実際には値型です。指摘してくれてありがとう!

4

2 に答える 2

8

あなたの前提は間違っています。String は実際には参照型であり、多くのシナリオでたまたま値型のように機能します。Type.IsValueType は、値をボックス化する必要があるかどうかを判断する最も信頼できる方法です。

ただし、null 許容値を扱う場合は注意が必要です。

于 2009-09-04T21:11:13.890 に答える
1

生のILを書いていますか?これは、ボクシングに関心を持つ必要がある唯一のケースです。

于 2009-09-04T21:10:16.653 に答える