C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 19 を表示中)
■7501 / )  メソッドの引数にプロパティを渡した時の挙動について
□投稿者/ 向井 (1回)-(2007/09/07(Fri) 11:16:14)

分類:[VB.NET/VB2005] 

2007/09/07(Fri) 11:18:43 編集(投稿者)

はじめまして。向井と申します。

あるクラスのメソッドを呼び出す際、
メソッドの引数にプロパティを渡して呼び出した場合、
メソッドが実行された後に、引数で渡したプロパティの
setがなぜか呼ばれます。

これは.NETのバグなのでしょうか。
それとも何か初歩的な誤りをしているだけなのでしょうか。
皆目見当がつかず困っております。

■環境:
VB.NET 2.0
ASP.NET 2.0
Visual Studio 2005

■例:ClientクラスでClassAをNewし、ClassAのメソッドを呼び出します。
   この際、引数にClassAのPropプロパティを渡しています。
   すると、Methodメソッドが実行された後、PropプロパティのSetが呼び出されます。
   ステップ実行して頂くと、その動きが確認できます。
   ※なお、ClassAのメソッドを呼び出す際に、
    ClassAのプロパティを渡す必要はない、といったご指摘は無用です。
    登場するクラス数を最小限にしたかったので、このような例にしたまでです。
   
public class Client

public sub aaa()
Dim classA As New ClassA
classA.Method(classA.Prop)
end sub

end class

Public Class ClassA

Private prop_ As Integer

Public Property Prop() As Integer
Get
Return prop_
End Get
Set(ByVal value As Integer)
prop_ = value
End Set
End Property

Public Sub Method(ByRef arg As Integer)

End Sub

End Class

以上です。
どうかよろしくお願いします。

返信 編集キー/


管理者用

- Child Tree -