こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VB2008: 構造体に関するMSDNの解釈について!

' ==================
' 構造体変数の代入
' ==================
Module theTEST
  Private Structure TEST4
    Dim MembersCount As Integer
    Dim Member1 As String
    Dim Member2 As String
  End Structure

  Sub Main()
    Dim T4_1 As TEST4
    Dim T4_2 As TEST4

    T4_1.MembersCount = 1
    T4_1.Member1 = "T4_1:Member1"
    T4_1.Member2 = "T4_1:Member2"
    T4_2 = T4_1
    Debug.Print(T4_2.MembersCount.ToString)
    Debug.Print(T4_2.Member1)
    Debug.Print(T4_2.Member2)
  End Sub
End Module

[イミディエイト ウインドウ]
1
T4_1:Member1
T4_1:Member2

>構造体の要素が文字列型 (String) やオブジェクト型 (Object) などの参照型である場合は、データへのポインタがコピーされます。
http://msdn.microsoft.com/ja-jp/library/18ytyskd(VS.80).aspx

このMSDNライブラリの説明によると、

[イミディエイト ウインドウ]
0
T4_1:Member1
T4_1:Member2

という結果を得るというのが私の予測。

もしかしたら、MSDNライブラリの説明の舌足らず。

>構造体の要素が値型であらば値がコピーされますが、文字列型 (String) やオブジェクト型 (Object) などの参照型である場合は、データへのポインタがコピーされます。

ということでしょうか?

投稿日時 - 2009-03-17 20:29:46

QNo.4805127

困ってます

質問者が選んだベストアンサー

例の前に「一方の構造体のすべての要素が、もう一方の構造体の対応する要素にコピーされます」と書いてあるので, そこでカバーしているということじゃないかなぁ. 本当は参照型である場合もそこでカバーされているんだけど, 注意をうながす意味であえて書いているんじゃないかなと推測.

投稿日時 - 2009-03-17 21:42:03

お礼

納得です。
ありがとうございました。

※確信がなかったもので・・・。

ありがとうございました。

投稿日時 - 2009-03-18 09:37:39

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問