Porady: dodawanie instrukcji śledzenia do kodu aplikacji
Uwaga
Ten artykuł jest specyficzny dla programu .NET Framework. Nie ma zastosowania do nowszych implementacji platformy .NET, w tym .NET 6 i nowszych wersji.
Metody używane najczęściej do śledzenia to metody zapisywania danych wyjściowych do odbiorników: Write, WriteIf, WriteLine, WriteLineIf, WriteLineIf, Assert i Fail. Te metody można podzielić na dwie kategorie: Write, WriteLine i Fail wszystkie emitują dane wyjściowe bezwarunkowo, podczas gdy writeIf, WriteLineIf i Assert testują warunek logiczny oraz zapisują lub nie zapisują na podstawie wartości warunku. WriteIf i WriteLineIf emitują dane wyjściowe, jeśli warunek ma true
wartość , a funkcja Assert emituje dane wyjściowe, jeśli warunek to false
.
Podczas projektowania strategii śledzenia i debugowania należy zastanowić się, jak mają wyglądać dane wyjściowe. Wiele instrukcji Write wypełnionych niepowiązanymi informacjami spowoduje utworzenie dziennika, który jest trudny do odczytania. Z drugiej strony użycie funkcji WriteLine do umieszczania powiązanych instrukcji w osobnych wierszach może utrudnić odróżnienie informacji, do których informacji należy. Ogólnie rzecz biorąc, użyj wielu instrukcji Write , jeśli chcesz połączyć informacje z wielu źródeł, aby utworzyć pojedynczy komunikat informacyjny, i użyć instrukcji WriteLine , gdy chcesz utworzyć pojedynczy, kompletny komunikat.
Aby napisać pełny wiersz
Wywołanie WriteLine lub WriteLineIf metody.
Powrót karetki jest dołączany na końcu komunikatu zwracany przez tę metodę, dzięki czemu następny komunikat zwrócony przez polecenie Write, WriteIf, WriteLine lub WriteLineIf rozpocznie się w następującym wierszu:
Dim errorFlag As Boolean = False Trace.WriteLine("Error in AppendData procedure.") Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.")
bool errorFlag = false; System.Diagnostics.Trace.WriteLine ("Error in AppendData procedure."); System.Diagnostics.Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.");
Aby napisać wiersz częściowy
Wywołanie Write lub WriteIf metody.
Następny komunikat wyzłożone przez instrukcję Write, WriteIf, WriteLine lub WriteLineIf rozpocznie się w tym samym wierszu co komunikat wystawiony przez instrukcję Write lub WriteIf:
Dim errorFlag As Boolean = False Trace.WriteIf(errorFlag, "Error in AppendData procedure.") Debug.WriteIf(errorFlag, "Transaction abandoned.") Trace.Write("Invalid value for data request")
bool errorFlag = false; System.Diagnostics.Trace.WriteIf(errorFlag, "Error in AppendData procedure."); System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned."); Trace.Write("Invalid value for data request");
Aby sprawdzić, czy istnieją pewne warunki przed lub po wykonaniu metody
Wywołaj metodę Assert .
Dim i As Integer = 4 Trace.Assert(i = 5, "i is not equal to 5.")
int i = 4; System.Diagnostics.Trace.Assert(i == 5, "i is not equal to 5.");
Uwaga
Możesz użyć funkcji Assert z funkcją śledzenia i debugowania. W tym przykładzie stos wywołań jest zwracany do dowolnego odbiornika w kolekcji Odbiorniki . Aby uzyskać więcej informacji, zobacz Asercji w kodzie zarządzanym i Debug.Assert.