tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルメソッドの実装方法
記事No4430
投稿日: 2006/10/18(Wed) 16:58
投稿者へるぷ・みぃ
クラスのメソッドを作る際

Method1()
Method1(5)

のように、0または1個の引数(数値)を取るメソッドを
作ろうとしたとします。
その場合、次の2つの方法の内、どちらで実装するのが普通なのでしょうか?

---------------------------------------------------------------------------------
方法1)1つのプロシージャ(メソッド)として実装

Public Sub Method1(Optional ByVal arg As Integer)
   '略
End Sub

---------------------------------------------------------------------------------
方法2)2つのプロシージャ(メソッド)として実装

Public Sub Method1()
   '略
End Sub

Public Sub Method1(ByVal arg As Integer)
   '略
End Sub

[ツリー表示へ]
タイトルRe: メソッドの実装方法
記事No4431
投稿日: 2006/10/18(Wed) 17:34
投稿者魔界の仮面弁士
> Public Sub Method1(Optional ByVal arg As Integer)

その書き方はできません。
http://msdn2.microsoft.com/ja-jp/library/xs92h188.aspx


> その場合、次の2つの方法の内、どちらで実装するのが普通なのでしょうか?

標準クラスライブラリで、Optional が利用されている物は稀である事からもわかるように、
.NET 系では、後者の「オーバーロード」方式が良く利用されています。
(C# では、省略可能な引数がサポートされていないといった事情もあります)


一方、COM Interop が絡む場合には、前者の「省略可能引数」方式となります。
もしくは、別名のメソッドとして定義するか…ですね。
(これは、COM ではオーバーロードがサポートされていないという、単純な理由によるものです)

[ツリー表示へ]
タイトルRe^2: メソッドの実装方法[解決]
記事No4438
投稿日: 2006/10/20(Fri) 14:55
投稿者へるぷ・みぃ
よく理解できました。
ありがとうございます。

[ツリー表示へ]