Hallo Ich schreibe C# Codes von Legacy-VB Codes, ich habe eine Funktion:Rückgabetyp von Exception Stacktrace
Public Shared Sub logError(ByVal ex As Exception, ByVal additionalInfo As String)
Dim messagestr As String
If ex.StackTrace.Length > 0 Then
For Each stackTrace As String In ex.StackTrace
messagestr &= stackTrace
Next
End If
umgewandelt I die for-Schleife wie:
foreach (string stackTrace in ex.StackTrace)
{
messagestr += stackTrace;
}
Es gibt eine Fehlermeldung unter 'foreach': "Kann den Typ 'char' nicht in 'string' konvertieren.
Es ist ziemlich merkwürdig, da ich den StackTrace von MSDN gelesen habe, dass er einen String zurückgibt. Also weiß ich nicht, warum es eine for-Schleife gibt die alten VB-Codes, und ich auch nicht woher kommt der "char"?
Ich denke, ich bin komplett in diesem Bereich verloren. Kann mir jemand helfen?
Erstens, warum denken Sie, StackTrace * Klasse * ist spezifisch für VB? Zweitens, um eine Instanz dieser * Klasse * zu erhalten, muss man diese Klasse buchstäblich instanziieren, wie zum Beispiel "Dim trace As New StackTrace"; Wenn Sie auf die StackTrace * -Eigenschaft * einer Exception-Klasseninstanz zugreifen, erhalten Sie einen String, sei es C#, VB oder eine andere .NET-Sprache. –