最後にその8のVB版。
Public MustInherit Class AbstractLog
Public MustOverride Sub WriteLog(ByVal logMessage As String)
End Class
Public Class StandardOutputLog
Inherits AbstractLog
Public Overrides Sub WriteLog(ByVal logMessage As String)
Console.WriteLine(logMessage)
End Sub
End Class
Public Class DebugOutputLog
Inherits AbstractLog
Private _abstractLog As AbstractLog
Public Sub New(ByVal abstractLog As AbstractLog)
Me._abstractLog = abstractLog
End Sub
Public Overrides Sub WriteLog(ByVal logMessage As String)
Me._abstractLog.WriteLog(logMessage)
Debug.WriteLine(logMessage)
End Sub
End Class
Public Class EventOutputLog
Inherits AbstractLog
Private _abstractLog As AbstractLog
Public Sub New(ByVal abstractLog As AbstractLog)
Me._abstractLog = abstractLog
End Sub
Public Overrides Sub WriteLog(ByVal logMessage As String)
Me._abstractLog.WriteLog(logMessage)
If Not EventLog.SourceExists("Masaru") Then
EventLog.CreateEventSource("Masaru", "TestLog")
End If
Dim eLog As New EventLog()
eLog.Source = "Masaru"
eLog.WriteEntry(logMessage)
End Sub
End Class
Public Shared Sub Main(ByVal args As String())
Dim stdOutLog As New StandardOutputLog()
stdOutLog.WriteLog("まさる")
Dim dbgOutLog As New DebugOutputLog(stdOutLog)
dbgOutLog.WriteLog("@わんくま同盟")
Dim evtOutLog As New EventOutputLog(dbgOutLog)
evtOutLog.WriteLog("@雪国っす")
Console.ReadLine()
End Sub
実行結果
これでひとまずC#=>VBの変換は終わりです。
今後はC#、VBのコードを同時に掲載しつつ、このシリーズをやっていこうと思います。