DOBON.NET DOBON.NETプログラミング掲示板過去ログ

値型でしょうか?参照型でしょうか?

環境/言語:[WinXP、VB2008、.NET3.5]
分類:[.NET]

2010/09/16(Thu) 16:56:17 編集(投稿者)
2010/09/16(Thu) 16:53:21 編集(投稿者)
2010/09/16(Thu) 16:51:33 編集(投稿者)

下記のようにクラスの中で構造体で宣言した場合は、値型になるのでしょうか?
また、この場合にはクラスにて宣言した方がよいのでしょうか?
(構造体の内部のデータはもう少し大きなものになります。また、最初にインスタンスを取ったら最後までそのままで、要素数等も固定であります。)

目的として、少しでもパフォーマンスを上げたいと思い、配列の確保方法を模索している所であります。

Public Class cls_Test
 Public Structure struct_TestSt
  Public a As Integer
  Public b As Integer
  Public c As Integer
  Public d As Integer
 End Structure

 Public TestSt(9999) As struct_TestSt
End Class


Public Class frm_Main
 Private Sub frm_Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

  Dim Test As New cls_Test

  Test.TestSt(0).a= 1

 End Sub

End Class


以上、乱文にて申し訳ありませんが、ご教示頂ければ幸いです。
値型と参照型は、置く場所(コードを書く場所)によって変化するものではありません。

値型と参照型を選ぶ基準として、Microsoft のドキュメントでは以下のような記載があります。
http://msdn.microsoft.com/ja-jp/library/ms229017.aspx
2010/09/17(Fri) 13:22:47 編集(投稿者)
2010/09/17(Fri) 13:22:44 編集(投稿者)

■No27324に返信(Azuleanさんの記事)

ご返信を頂き、ありがとうございます。

> 値型と参照型は、置く場所(コードを書く場所)によって変化するものではありません。
了解致しました。
私が無知な為に、申し訳ありません。


> 値型と参照型を選ぶ基準として、Microsoft のドキュメントでは以下のような記載があります。
> http://msdn.microsoft.com/ja-jp/library/ms229017.aspx
参考資料のご掲示、ありがとうございました。
今回の場合、インスタンスのサイズが16バイトを超える事と、データを頻繁に変更する事から、参照型(クラス定義)にて使用した方が良いと認識しましたが、間違いないでしょうか?

しばらく待って認識違いに対しご指摘がなければ、表題の件は解決しましたので解決済みとさせていただきます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板