- PR -

ボックス化の必要性とは?

1
投稿者投稿内容
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-07-12 16:05
#Framework2.0

MSDN「クラスと構造体の選択」にある構造体採用のガイドラインに次の一文があります。
「頻繁にボックス化する必要がない。」

ボックス化について「挙動」としては理解していますが
「ボックス化する必要」という言葉から「ボックス化する意図」があると思います。

で、その場面が想像できないのですが 、どなたか例を挙げていただけませんか?
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-07-12 16:12
構造体が値型だから
Object を引数に持つメソッドに突っ込んだときにボックス化がおきるので
構造体で定義するなら、そういう用途に使わない物にしましょうねってこと?

#あれ、ちがう?

[ メッセージ編集済み 編集者: かるあ 編集日時 2006-07-12 16:14 ]
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-07-12 16:21
引用:

#あれ、ちがう?


あ、そうではないです、、、と書こうと思ったんだけど
よぉく考えたら、かるあさんのおっしゃることがなんとなくわかってきました。。。

設計の一部としてボックス化を意図して採用している、というような意味に捉えてしまったようです。
#というか、構造体そのものではなく構造体のメンバのガイドラインというような読み方をしてしまいました。

[ メッセージ編集済み 編集者: まどか 編集日時 2006-07-12 16:24 ]
object
ぬし
会議室デビュー日: 2002/03/20
投稿数: 338
お住まい・勤務地: 香川県高松市
投稿日時: 2006-07-14 00:02
objectです。

少し遅過ぎる感じもしますが、
>ボックス化について「挙動」としては理解していますが
>「ボックス化する必要」という言葉から「ボックス化する意図」があると思います。
System.Object
└─System.ValueType
ですから、「ValueType」は参照型としての性質を内部に保持している訳です。
これが、ボックス化(暗黙的に参照型になる)の意味だと私は思います。

従って
>Object を引数に持つメソッドに突っ込んだときにボックス化がおきるので
>構造体で定義するなら、そういう用途に使わない物にしましょうねってこと?
は重要だとは思いますが、二次的な事であると思います。
1

スキルアップ/キャリアアップ(JOB@IT)