- - PR -
ボックス化の必要性とは?
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-12 16:05
#Framework2.0
MSDN「クラスと構造体の選択」にある構造体採用のガイドラインに次の一文があります。 「頻繁にボックス化する必要がない。」 ボックス化について「挙動」としては理解していますが 「ボックス化する必要」という言葉から「ボックス化する意図」があると思います。 で、その場面が想像できないのですが 、どなたか例を挙げていただけませんか? | ||||
|
投稿日時: 2006-07-12 16:12
構造体が値型だから
Object を引数に持つメソッドに突っ込んだときにボックス化がおきるので 構造体で定義するなら、そういう用途に使わない物にしましょうねってこと? #あれ、ちがう? [ メッセージ編集済み 編集者: かるあ 編集日時 2006-07-12 16:14 ] | ||||
|
投稿日時: 2006-07-12 16:21
あ、そうではないです、、、と書こうと思ったんだけど よぉく考えたら、かるあさんのおっしゃることがなんとなくわかってきました。。。 設計の一部としてボックス化を意図して採用している、というような意味に捉えてしまったようです。 #というか、構造体そのものではなく構造体のメンバのガイドラインというような読み方をしてしまいました。 [ メッセージ編集済み 編集者: まどか 編集日時 2006-07-12 16:24 ] | ||||
|
投稿日時: 2006-07-14 00:02
objectです。
少し遅過ぎる感じもしますが、 >ボックス化について「挙動」としては理解していますが >「ボックス化する必要」という言葉から「ボックス化する意図」があると思います。 System.Object └─System.ValueType ですから、「ValueType」は参照型としての性質を内部に保持している訳です。 これが、ボックス化(暗黙的に参照型になる)の意味だと私は思います。 従って >Object を引数に持つメソッドに突っ込んだときにボックス化がおきるので >構造体で定義するなら、そういう用途に使わない物にしましょうねってこと? は重要だとは思いますが、二次的な事であると思います。 |
1