Präprozessordirektiven in C#

Gast #2379679
Lesenswert?
• ▲
▼
Sameth schrieb:
> Seit wann gibt es bitte in C# Präprozessordirektiven sowie in C? Ich
> bilde mir ein neulich gelesen zu haben dass es das für c# nicht gibt,
> dafür aber Constanten und weiters.
>
> War das bei der Visual C# 2003 Version auch noch dabei oder ist das neu
> dazu gekommen?

In VS 2003 ist das definitiv dabei - kannst Du noch auf MSDN nachlesen.

Die Info für VS 2002 (die erste Version mit .NET) hat MS schon entsorgt, 
aber soweit ich mich zu erinnern glaube war es da auch schon drin.

Und weil Du Dich wunderst warum es das überhaupt fur C# gibt: Naja, MS 
hatte grosses damit vor und richtige Programmiersprachen haben halt 
bedingte Kompilierung... ;-)
Gast #2396037
Lesenswert?
• ▲
▼
Die Antwort hierzu ist recht simpel: Genau genommen sind dies nur 
Compiler-Direktiven, die wie der C-Präprozessor-Anweisungen aussehen. Es 
findet aber keine Ersetzung statt, aber man kann auch Code-Abschitte 
für verschiedene Konfigurationen ein- und ausblenden (#if .. #endif). 
Die Symbole können in der Projektmappe oder im Code (#define) festgelegt 
werden.

Die zweite Funktion sind pragmas, etwa um Warnungen aus- und wieder 
einzuschalten (#pragma warning disable 1234), und Entwickler-definierte 
Warnungen.

Die dritte und letzte Funktion ist die Hervorhebung von Code-Blöcken für 
die IDE oder den Programmierer.

Alle anderen Funktionen des Präprozessors von C fehlen in C#. Beispiel: 
Makros als Alternativen zu den Inline-Funktionen machen in C# keinen 
Sinn, da der JIT-Compiler Hotspots automatisch erkennt 
(http://blogs.msdn.com/b/ericgu/archive/2004/01/29/64644.aspx).

Die Direktiven waren ab Version 1.0 dabei. (language specification)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren