Я хочу написать код, который выглядит следующим образом:Наследование StreamWriter с новым именем
Public Class LogFile
Inherits StreamWriter
Private LogsDirectory As String = Application.StartupPath & "\" & "logs\"
Public Sub New(shortName As String)
Dim fullFilePath As String = LogsDirectory & shortName & "_" & Format(Now, "HHmmss") & ".log"
MyBase.New(fullFilePath)
End Sub
End Class
Однако я вынужден сделать это (потому что первое утверждение Sub New
должно быть базовый конструктор):
Public Class LogFile
Inherits StreamWriter
Public Sub New(shortName As String)
MyBase.New(Application.StartupPath & "\" & "logs\" & shortName & "_" & Format(Now, "HHmmss") & ".log")
End Sub
End Class
Есть ли способ «вокруг» этого? В этом случае все в порядке, но мне хотелось бы сделать больше обработки, которая не поместилась бы на одной строке.
LogsDirectory переменная должна иметь свое значение, присвоенные прежде чем он будет использоваться. Похоже, что это автоматический код, но это всего лишь синтаксический сахар, конструктор позаботится об этом. Но подождите, вы пишете конструктор. Яйцо должно идти перед цыпленком. То же самое относится к MyBase.New(). –