C++ nach C# Portierungen

Portierungen sind eine schöne Sache wenn man sich die Zeit vertreiben möchte ;) Bei der Portionierungen von C/C++ nach C# wird dabei immer wieder Dinge sehen die Schema F betreffen wie z.B. bestimmte Datentypen:

unsigned int -> uint
unsigned -> uint
unsigned char -> byte
std:string -> string
size_t -> Int64

Andere sehr beliebte Sachen sind Kollektionen wie Listen oder die Vektorklasse. Aus Dingen wie:

std::vector Things;
std::list Things();

wird dann meist immer ein:

List<Thing> Things;

Die Map:

std::map<unsigned short, unsigned> nodes;

wird dabei durch ein Dictionary ersetzt:

Dictonary<unsigned short, unsigned> nodes;

Immer wieder schön sind die Typedefs wie z.B.

typedef std::vector<Account> Accounts;

welche bei mir dann auch in eine Liste umgewandelt werden, an den Stellen an denen sie benutzt werden:

List<Account> Accounts;

Beim portieren von Klassen werden Header und C Datei in eine gemeinsame Datei geworfen und die Doppelungen entfernt. Aus den Klassenfunktionen aller:

void Thing::MakeFoo(int value)

wird dabei ein:

void MakeFoo(int value)

Bei While Schleifen wird aus einem:

while (message.getUnreadLength())

ein

while (message.getUnreadLength()!=0)

Aus einem Vergleich:

if(!receiver)

wird ein

if (receiver!=null)

Iteratoren sind auch immer wieder schöne Sachen. Aus

for (ChatChannels::const_iterator i = mChatChannels.begin(), i_end = mChatChannels.end());

wird ein:

foreach(ChatChannel channel in mChatChannels)

Sicherlich gibt es auch noch andere Schema F Konstrukte, dies sind allerdings die bei mir am häufigsten vorkommenden.

Weitere Informationen gibt es unter:
http://stackoverflow.com/questions/3659044/comparison-of-c-stl-collections-and-c-sharp-collections
http://stackoverflow.com/questions/6274878/what-is-c-time-t-equivalent-for-c-sharp

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.