Quantcast
Channel: OKWAVE 最新質問(Visual Basic/257)【本日】
Viewing all articles
Browse latest Browse all 6510

メソッドの作成方法

$
0
0
メソッドの作成方法に関して不明な点がありますので教えてください。 次の例はExcel VBAで作成したものです。 ---- Class Point ---- Public x As Integer, y As Integer ---- Class Line ---- Public FromPoint As Point, ToPoint As Point Sub Clear() Set FromPoint = New Point ToPoint.x = 0 ToPoint.y = 0 End Sub ---- テスト用プログラム ---- Sub test() Dim a As New Point, b As New Point, c As New Line a.x = 1 a.y = 2 b.x = 3 b.y = 4 Set c.FromPoint = a Set c.ToPoint = b c.Clear End Sub -------- 以上のプログラムにおいて test を実行すると c.Clear を実行したとき a の内容は変化しませんが b の内容は変化してしまいます。 これは Clearメソッドにおいて FromPoint のように新しいオブジェクトで設定するか、ToPoint のようにオブジェクトはそのままで内容を変更するかの違いです。 メソッドの作り方としてはどちらの方法を採用すべきでしょうか。 Class を使う側からすれば、各Classごとに副作用が異なるのは困るので同じ基準でメソッドを作りたいのですが。 一般的にはメソッドを実行するたびに新しいオブジェクトを作るわけではないので(上記の例でいえば Clearメソッドで新しい Lineオブジェクトを作成するわけではない)下位レベルのオブジェクトについても新たにオブジェクトを作らないほうが考え方が統一されてよいとは思いますが。 しかし、下位レベルのオブジェクトを Nothing にする場合などはどうしても動作が異なってしまうので、どうすべきか混乱しています。

Viewing all articles
Browse latest Browse all 6510

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>