___ qstntxt ___
Ich habe mich gerade zerstreut gefunden, indem ich add
als Identifikator benutzt habe.
Mir ist klar, dass es möglich ist, remove
zu verwenden, um Bezeichnernamen zu entgehen und reservierte Wörter zu verwenden, aber ich verstehe nicht, warum ich in diesem Fall keine Warnung oder einen Fehler erhalten habe.
Ich möchte keine reservierten Wörter für etwas anderes als ihren beabsichtigten Zweck verwenden, aber ich möchte nicht noch einmal einen ähnlichen Fehler machen und würde gerne die Gründe dafür kennen, Sprachschlüsselwörter zu haben, die unter bestimmten Umständen nicht reserviert sind / p>
___ answer4338748 ___
Einige Schlüsselwörter sind nur in bestimmten Kontexten reserviert, z. B. get
in set
.
Siehe "Kontextbezogene Keywords" unter dieses Thema auf MSDN .
___ qstnhdr ___ Wann sind C # -Schlüsselwörter nicht reserviert?
___ answer4338759 ___
Sie sind nicht reserviert , wenn sie kontextuell sind ( MSDN-Verbindung ):
Ein kontextabhängiges Schlüsselwort wird verwendet
eine bestimmte Bedeutung in der
Code, aber es ist kein reserviertes Wort in
C #. Einige kontextbezogene Schlüsselwörter, wie z
teilweise und wo, haben spezielle
Bedeutungen in zwei oder mehr Kontexten.
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert.
___ antwort4338795 ___
Um die zugrunde liegende Frage zu beantworten:
Alle nach C # 1 hinzugefügten Schlüsselwörter sind kontextabhängig. Dadurch werden Änderungen vermieden.
Fast alle C # 1-Schlüsselwörter sind reserviert, mit Ausnahme der Accessor-Schlüsselwörter ( %code% , %code% , %code% und %code% ).
___ tag123syntax ___ Syntax bezieht sich auf die eigentlichen Sprachelemente und Symbole selbst. Fragen sollten als Syntax gekennzeichnet werden, wenn sich die Frage spezifisch und fast vollständig auf die Syntax bezieht. Dieses Tag sollte mit einem bestimmten Sprach-Tag verwendet werden
___ answer4338767 ___
Die meisten C # -Schlüsselwörter sind immer reserviert. Einige, wie Sie herausgefunden haben, sind nur in einigen Kontexten reserviert. Sie werden kontextbezogene Schlüsselwörter genannt. Ich glaube, das ist ein Weg, Rückwärtskompatibilität besser zu gewährleisten.
Der Grund dafür ist, dass %code% in C # 2 ein vollkommen akzeptabler Variablenname war. C # 3 fügte LINQ hinzu und sie benötigten Schlüsselwörter dafür. Um maximale Kompatibilität zu gewährleisten, wurde %code% als kontextabhängiges Schlüsselwort hinzugefügt.
___ tag123reservedwords ___ reservierte Wörter sind spezifische Wörter in jeder Sprache, die von den Autoren aufgrund ihrer besonderen Bedeutung in der Sprache nicht verwendet werden dürfen.
___ answer4338761 ___
Das C # -Team versucht speziell, neue reservierte Schlüsselwörter in der Sprache zu vermeiden. Wenn ein neues Schlüsselwort hinzugefügt wird, wird der vorhandene Code, der dieses Schlüsselwort verwendet hat, automatisch als Bezeichner verwendet. Daher verwendet C #, wann immer möglich, ein kontextabhängiges Schlüsselwort, um die Möglichkeit zu minimieren oder zu beseitigen, vorhandenen Code zu brechen.
Ein kontextuelles Schlüsselwort ist eines, das nur dann ein Schlüsselwort ist, wenn es in einem bestimmten Kontext wie %code% , %code% , %code% usw. verwendet wird. Dieser Kontext enthält keine Bezeichner:)
Ich glaube nicht, dass seit C # 2.0 ein neues Keyword hinzugefügt wurde (nicht einmal sicher, dass 2.0 hinzugefügt wurde)
___ answer4338765 ___
von ist ein kontextabhängiges Schlüsselwort. Viele von ihnen in C #, sie verhalten sich nur wie ein Schlüsselwort, wenn sie in einem bestimmten Kontext verwendet werden. Der große Vorteil besteht darin, dass das Hinzufügen eines solchen Kontextschlüssels zur Sprache den vorhandenen Code nicht unterbricht.
Sie finden sie in der zweiten Tabelle auf dieser MSDN-Seite . Ja, von ist da.
___