C# Syntax Highlighting - get und set
-
public class Foo<T> { private T bar public T Bar { get { return this.bar; } set { this.bar = value; } } }
Warum werden get und set nicht gehighlightet, Bug?
-
sowas kann man nicht als bug bezeichnen sondern ehr als unvollkommenheit
-
Könnte daran liegen, dass get und set keine Schlüsselwörter sind
Die haben nur in einem bestimmten Kontext eine besondere Bedeutung und können außerhalb davon als Identifier benutzt werden. (Alles AFAIK)
-
Richtig. get und set sind keine schlüsselwörter.
Die C# Programmiersprache Seite 77 schrieb:
An einigen Stellen der Grammatik erhalten bestimmte Bezeichner eine besondere Bedeutung, ohne jedoch Schlüsselwörter zu sein, zum Beispiel die Bezeichner get und set innerhalt einer Eigenschaftsdeklaration (Abschnitt 10.6.2). Andere Bezeichner außer get und set sind an diesen Stellen nie zulässig, weshalb es nicht zu Konflikten kommen kann.
Das Bedeutet das es richtig ist, get und set nicht zu highlighten, imho.
BR
-
Naja, "richtig" wäre es, an den richtigen Stellen zu highlighten. Da ihr aber wahrscheinlich keinen C#-Parser bauen werdet, würde ich es auch so lassen.
Gilt übrigens auch für "value", ich würde das Highlighting dafür entfernen.int value;
-
Gerard schrieb:
sowas kann man nicht als bug bezeichnen sondern ehr als unvollkommenheit
OK, dann besteht wohl eine gewisse Inkonsistenz. Denn wir Optimizer schon schrieb, wird ja auc value gehighlightet, ohne das dies ein Schlüsselwort ist.
-
Toll, dann kann man Syntax Highlighting in C# in ein paar Jahren aber gleich mal vergessen. Jetzt kommen ja wieder ein paar neue nicht-Schlüsselwörter dazu wie partial, global, yield, etc.. Da ist es doch vernünftiger sie einfach ebenfalls zu highlighten.
-
Es ist auch kein Gewinn, int value; komisch da stehen zu haben. Ich möchte sogar wetten, dass get, set und value öfter nicht als spezieller Bezeichner auftauchen als schon.
Am besten wäre natürlich ein Parser, aber in PHP schreib ich den jedenfalls nicht. :p