Visual Basic 2008では 部分メソッド という機能が新しく追加されましたそうです。どんなんか~な~。
MSDN : 部分メソッド
む?メソッドの一部分を分けるとかってのではないのですか・・・。なんかちょっと分かりにくい名前ですね。ふむふむ・・・メソッドの宣言と実装を分離できるよ~ってことですか。
簡単に書くとこんな感じですね。
Public Class Class1
Partial Private Sub Hoge()
End Sub
Private Sub Hoge()
Console.WriteLine("パーシャル○ント")
End Sub
End Class
上のHogeメソッドが部分メソッドの宣言、下のHogeメソッドが部分メソッドの実装になります。宣言側ではメソッドをPartialキーワードを使用し、中身の実装を書きません。実装側では通常のメソッドと同じですね。
で、この部分メソッドについてちらほらと書くと、まず部分メソッドはSubプロシージャであること、またPrivateであることが必要みたいです。
んでもって、部分メソッドの実装がない場合は、メソッドへの呼び出しはコンパイラによって削除されるそうです。ほほ~、ちゃんと考えてくれるわけですね。
あ、そういえば、以前読んだ記事でこんなのがありました。
The Visual Basic Team : Partial Methods
書かれているのは以下のような使い方。
Public Class PrettyConditonalCompilationCode
Partial Private Sub LogMessage(ByVal s As String)
End Sub
#If DEBUG Then
Private Sub LogMessage(ByVal s As String)
Console.WriteLine(s)
End Sub
#End If
Sub DoStuff()
DoFirstThing()
LogMessage("Did first thing")
DoSecondThing()
LogMessage("Did second thing")
DoThirdThing()
LogMessage("Did third thing")
End Sub
End Class
メソッドの実装を条件付コンパイル内に置くことで(今回はDEBUG定数によって)実装の有無を変更できるんですね。なるほどなるほど♪
これ以外にも使用するとうまいシナリオはあるのかもしれません。が、Partial クラス同様、単一ファイル内外に関わらず実装が点在してしまう可能性はありますね。