Ich mag Code schreiben, der wie folgt aussieht:Vererben von Stream mit neuen Dateinamen
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
aber ich bin, dies zu tun gezwungen (weil die erste Anweisung von Sub New
zu einem Basiskonstruktor sein muss):
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
Gibt es einen Weg "um" dies? In diesem Fall ist es in Ordnung, aber ich würde vielleicht gerne mehr Verarbeitung machen, die nicht auf eine einzige Zeile passen würde.
Die LogsDirectory Variable muss seinen Wert zugewiesen haben bevor es nutzbar ist. Sieht so aus, als ob es im Code automatisch ist, aber das ist nur Syntax Zucker, der Konstruktor kümmert sich darum. Aber warten Sie, Sie schreiben den Konstruktor. Das Ei muss vor dem Huhn gehen. Gleiches gilt für MyBase.New(). –