プロが教えるわが家の防犯対策術!

' ==================
' 構造体変数の代入
' ==================
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 …

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

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

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

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

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

ということでしょうか?

A 回答 (1件)

例の前に「一方の構造体のすべての要素が、もう一方の構造体の対応する要素にコピーされます」と書いてあるので, そこでカバーしていると

いうことじゃないかなぁ. 本当は参照型である場合もそこでカバーされているんだけど, 注意をうながす意味であえて書いているんじゃないかなと推測.
    • good
    • 0
この回答へのお礼

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

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

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

お礼日時:2009/03/18 09:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!