思い出した!
以前書いたTry...Catch...Finally ステートメント使用時の Exit 。で、
って書いてた。'shouldReturn' ってどっかで見たことあるなーっておもっていたけど思い出したのでメモ。
Dim shouldReturn As Boolean = False
私は、Refactor!™ for Visual Basic® .NET 2005 なるものを使用しています。リファクタリングなんてまだまだ勉強中なわけですが、これはふつーに便利ツールです。
それの機能のひとつに「メソッドの展開」ってのがあって、だらだらと長ったらしいメソッド書いといて、その内部を分離するために使っています。
で、今回の話の内容は、
って感じのコードから
[Visual Basic]
Public Sub Greet(ByVal message As String)
If String.IsNullOrEmpty(message) Then
Exit Sub
End IfSystem.Console.WriteLine(message)
End Sub
[Visual Basic]この部分に「メソッドの展開」を指定すると、If String.IsNullOrEmpty(message) Then
Exit Sub
End If
[Visual Basic]と、こんな感じになるんですが、ここでの 'shouldReturn' のを無意識に真似ていたっぽい。Public Sub Greet(ByVal message As String)
Dim lShouldReturn As Boolean
GreetExtracted(message, lShouldReturn)
If lShouldReturn Then
Return
End IfSystem.Console.WriteLine(message)
End Sub
Private Sub GreetExtracted(ByVal message As String, ByRef shouldReturn As Boolean)
shouldReturn = False
If String.IsNullOrEmpty(message) ThenshouldReturn = True : Exit Sub
End If
End Sub
でもこれ、
- lShouldReturn ってなんかヤダ。
- True : Exit Sub ってなんかヤダ。
- Exit Sub じゃなくて Return ってなんかヤダ。
- ByRef ってなんかヤダ。
- 微妙なスペース行 ってなんかヤダ。