Jonathan Allen
24.06.2022, 09:00 Uhr
C#: Warning Waves deuten auf neue Schlüsselwörter hin
Wie C# 9 und 10 hat auch C# 11 im Stillen eine neue Compiler-Warnung hinzugefügt. Diese Opt-in-Warnung verhindert die Verwendung von Typnamen (zum Beispiel Klassen, Strukturen und Schnittstellen), die klein geschrieben sind.
Die Warning Waves wurden eingeführt, damit Microsoft in Zukunft leichter neue Schlüsselwörter hinzufügen kann. Da C#-Schlüsselwörter immer nur aus ASCII-Kleinbuchstaben bestehen, verhindert das Einfügen eines Grossbuchstabens, dass der Typname jemals mit einem zukünftigen Schlüsselwort kollidiert. Die Dokumentation der Warnung geht allerdings nicht im Detail darauf ein, welche Schlüsselwörter in Frage kommen.
Die C#-Toolchain hat ihre Meldungen bis C# 8 in drei grosse Typen unterteilt: Compilerfehler, Compilerwarnungen und Warnungen der statischen Analyse. Fehler sind Showstopper, die den Compiler daran hindern, seine Arbeit abzuschliessen. Compiler-Warnungen weisen darauf hin, dass ein schwerwiegendes Problem besteht, der Compiler aber dennoch eine Ausgabedatei erzeugen kann. Sie sind standardmässig aktiviert, können aber ignoriert werden. Der letzte Typ ist im Wesentlichen "alles andere". Fehler bei der statischen Analyse sind nicht standardmässig aktiviert.
Ab C# 9 hat Microsoft das Konzept der C# Warning Waves eingeführt. Dabei handelt es sich um zusätzliche Compiler-Warnungen, das heisst Sie müssen kein weiteres Tool oder Paket installieren, aber sie sind standardmässig nicht aktiviert. Um sie zu verwenden, müssen Entwickler den Analysis-Level in der Projektdatei auf 5 oder höher setzen.
Weitere Hintergründe dazu erfahren Sie in diesem englischsprachigen Artikel von Jonathan Allen.