Laden...

#include-Anweisung für C#

Erstellt von markus111 vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.679 Views
markus111 Themenstarter:in
479 Beiträge seit 2008
vor 14 Jahren
#include-Anweisung für C#

Hallo Community,

mir ist etwas ziemlich 'blödes' aufgefallen, als ich bei einem Projekt das aus C# und C bestand in beiden Sprachen die gleichen Strukturen und 'Standard'-Werte (#define in C) brauchte.

Da es in C# die #include Präprozessoranweisung nicht gibt, will ich mal fragen ob es sich lohnen würde, einen Präpräprozessor für C# zu schreiben, der einfache C/C++ Header in C# einfügt und eventuell auch ein bischen umschreibt.

EDIT: Ich habe gerade gesehen das #defines (meistens) in ein const umgewandelt werden müssen, da das dumme C# keine echten Definitionen unterstützt 🙄

mfg.
markus111

[Follow me on Twitter](http://twitter.com/blendingsky)
49.485 Beiträge seit 2005
vor 14 Jahren

Hallo markus111,

Präprozessor würde ich das nicht nennen, aber natürlich kann es sinnvoll sein, aus einem C-Header eine C#-Datei zu generieren.

herbivore

T
381 Beiträge seit 2009
vor 14 Jahren

Du brauchst in c# keine Header, und Defines haben genug nachteile, dass ich denen nicht hinterher trauere. Wenn du c code nach c# konvertierst, würde es sich vielleicht anbieten alle Konstanten in einer eigenen Klasse oder als Enum zu realisieren.

C Defines sind nicht mal typisiert und können sogar Anwendungscode wie if Anweisungen enthalten. Du muss dich also in jedem Fall um verschiedene Defines auf verschiedene Weise kümmern. Sie also oftmals auch als Methoden implementieren. Dafür würde sich eine eigene (Statische?) Klasse wieder anbieten.

markus111 Themenstarter:in
479 Beiträge seit 2008
vor 14 Jahren
Erste Prealpha^^

Hallo,

ich hab mal angefangen: Geparst werden #define's die als Wert einen String oder einen Integer (Dezimal UND Hexadezimal) definiert wurden.
Sie werden als Konstanten in einer statischen, privaten Klasse Namens __IncludeMembers untergebracht. Habe es noch nie kompiliert, weiß also nicht ob es sich auch übersetzen lässt, sollte es aber.
Im Anhang hab ich auch mal den Sourcecode (der ist nicht sehr optimiert!), einfach starten, dann wird die sich im Ordner test befindene C# Datei mit dem C-Header geparst. Noch recht unvollständig.

mfg.
markus111

[Follow me on Twitter](http://twitter.com/blendingsky)
T
381 Beiträge seit 2009
vor 14 Jahren

Besser wäre wohl das include in ein using um zu wandeln und das header file in ein eigenes .cs file zu übersetzten.