Freigeben über


Nebeneffekte und Ausdrücke

Dieses Thema gilt für folgende Anwendungsbereiche:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

Thema ist vorhanden Thema ist vorhanden Thema ist vorhanden Thema ist vorhanden Thema ist vorhanden

Pro, Premium und Ultimate

Thema ist vorhanden

Thema ist vorhanden

Thema ist vorhanden

Thema ist vorhanden

Thema ist vorhanden

Ein Nebeneffekt tritt auf, wenn bei der Auswertung eines Ausdrucks ein Datenwert in der Anwendung geändert wird.

Wenn Ausdrücke im Debugger ausgewertet werden, sollten Sie besonders auf die Nebeneffekte achten. Wenn Sie einen Ausdruck im Fenster Überwachen oder im Dialogfeld Schnellüberwachung auswerten und dieser Nebeneffekte aufweist, könnten Sie unbewusst den Wert von Variablen aus einem anderen Teil des Programms ändern. Nebeneffekte können das Debuggen erschweren, indem sie fälschlicherweise den Anschein von Fehlern erwecken oder indem sie tatsächliche Fehler verdecken.

Eine häufige Ursache von Nebeneffekten ist die Auswertung eines Funktionsaufrufs in einem Debuggerfenster. Solche Auswertungen sind normalerweise auffällig. Eine unauffälligere Ursache für Nebeneffekte ist die Auswertung von Eigenschaften und anderen impliziten Funktionsaufrufen in verwaltetem Code.

Für den Debugger ist nicht erkennbar, ob eine Eigenschaftenauswertung oder ein impliziter Funktionsaufruf Nebeneffekte hat. Aus diesem Grund wertet der Debugger standardmäßig keine impliziten Funktionsaufrufe automatisch aus. Die Eigenschaftenauswertung ist standardmäßig zwar zugelassen, kann aber im Dialogfeld Optionen deaktiviert werden. Wenn ein Funktionsaufruf oder eine Eigenschaft nicht ausgewertet worden ist, wird ein Aktualisierungssymbol angezeigt. Sie können den Ausdruck manuell auswerten, indem Sie auf das Aktualisierungssymbol klicken. Ausführliche Informationen finden Sie unter Gewusst wie: Aktualisieren von Überwachungswerten.

Wenn die Auswertung von Eigenschaften oder impliziten Funktionen deaktiviert ist, können Sie die Auswertung mithilfe des ac-Formatmodifizierers erzwingen (nur für C#). Weitere Informationen finden Sie unter Formatbezeichner in C#.

Siehe auch

Aufgaben

Gewusst wie: Aktualisieren von Überwachungswerten