Suche…


Syntax

  • checked (a + b) // überprüfter Ausdruck
  • nicht angehakt (a + b) // ungeprüfter Ausdruck
  • geprüft {c = a + b; c + = 5; } // Block geprüft
  • ungeprüft {c = a + b; c + = 5; } // ungeprüfter Block

Geprüft und nicht geprüft

C # -Anweisungen werden entweder im geprüften oder ungeprüften Kontext ausgeführt. In einem überprüften Kontext löst ein arithmetischer Überlauf eine Ausnahme aus. In einem ungeprüften Kontext wird der arithmetische Überlauf ignoriert und das Ergebnis wird abgeschnitten.

short m = 32767;   
short n = 32767;
int result1 =  checked((short)(m + n));   //will throw an OverflowException
int result2 =  unchecked((short)(m + n)); // will return -2

Wenn keine davon angegeben wird, hängt der Standardkontext von anderen Faktoren ab, z. B. von Compileroptionen.

Als Bereich markiert und nicht markiert

Die Schlüsselwörter können auch Bereiche erstellen, um mehrere Vorgänge (un) zu überprüfen.

short m = 32767;
short n = 32767;
checked
{
    int result1 = (short)(m + n); //will throw an OverflowException
}
unchecked
{
    int result2 = (short)(m + n); // will return -2
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow