C# Basics – letzter Teil

Der letzten Teil der Basics fällt eher mager aus…

Die Environment Klasse

Die Environment Klasse bietet nicht nur das bekannte NewLine an, sondern noch diverse andere hilfreiche Eigenschaften:

CurrentDirectory
Kompletter Pfad des Arbeitsverzeichnisses des Prozesses.
SystemDirectory
Kompletter Pfad zum Systemverzeichnis.
CommandLine
Kommandozeile des Prozesses.
MachineName
Beinhaltet den NetBIOS Namen der Maschine.
ProcessorCount
Beinhaltet die aktuelle Anzahl Prozessoren des Systems.
OSVersion
Beinhaltet das aktuelle OperatingSystem Objekt.
ExitCode
Der Exit-Codes des Prozesses.
HasShutdownStarted
Beinhaltet den Wert, ob die CRL oder die Applikation gerade heruntergefahren wird.
StackTrace
Beinhaltet die aktuellen StackTrace Informationen.
TickCount
Ermittelt die Anzahl Millisekunden seit Systemstart.
UserDomainName
Name der Netzwerk-Domäne in welcher der Benutzer angemeldet ist.
UserInteractive
Indikator, ob der aktuelle Prozess im interaktiven Modus ausgeführt wird. Ein Prozess, der im IIS gehostet wird, würde false zurückgeben, da keine Benutzerinteraktion aktiv ist.
UserName
Benutzernamen der Person ab, die derzeit beim Windows-Betriebssystem angemeldet ist.
WorkingSet
Größe des physischen Speichers ab, der dem Prozesskontext zugeordne ist.
Version
Beinhaltet das Version Objekt von der Applikation. Daraus lassen sich Major, Minor, Build und Revision Nummern lesen.

Seltene Operatoren

Folgende Operatoren sind in den meisten C# Programmen eher seltene Gäste, weil sie in den meisten Fällen nur in speziellen Situationen gebraucht werden.

-> : Pointer to struct (unsafe)
Wird benutzt, um an die Methoden eines Pointers zu kommen
Beispiel: p->ToString();   // wenn p ein Pointer in einem unsafe-Block ist

* : Value at address (unsafe)
Wird benutzt, um an den Wert an einer Memory-Adresse zu kommen
Beispiel: int a = *p;   // wenn p ein Int-Pointer in einem unsafe-Block ist

& : Address of value (unsafe)
Wird benutzt, um an die Memory-Adresse eines Objektes zu kommen
Beispiel: int* p = &i;   // wenn i ein int Objekt ist

~ : Bitwise complement
Wird benutzt, um an den Komplementärwert zu kommen
Beispiel: int a = ~0;   // Ergibt das Komplement -1

% : Remainder
Wird benutzt, um den Restwert einer Division zu erhalten
Beispiel: int a = 4 % 3   // Ergibt den Restwert 1

<< oder >> : Shift left oder right
Wird benutzt, um einen Wert bitweise nach links oder rechts zu verschieben
Beispiel: int a = 8 << 2;   // Ergibt 32 (8 wird bitweise 2 mal nach links verschoben)

^ : Logical Xor
Wird benutzt, um einen Wert bitweises exklusives ODER zu rechnen
Beispiel: int a =  15 ^ 3; // Ergibt 12 oder binär 1100

?? : Null Coalescing
Wird benutzt, um den linken Operanden zurückgegeben, falls dieser nicht null ist. Ansonsten wird der rechte Operand zurückgegeben.
Beispiel: object x = null ?? new object();   // x wird das neue Objekt enthalten, da der erste Operand null war

?: : Conditional
Wird benutzt, um abhängig vom Wert eines booleschen Ausdrucks einen von zwei Werten zurück
Beispiel: int a = 1 == 3 ? 10 : 20;   // Ergibt 20, da die Bedinung 1 == 3 falsch ist

Links, die man immer wieder braucht

Es gibt Links in die MSDN, die man immer wieder nachschlagen muss, weil gewisse Dinge einfach lange nicht benutzt werden. Hier eine kleine Sammlung davon:

Sprache C#

C# Schlüsselwörter

C# Operatoren

C# Präprozessordirektiven

C# Compileroptionen

Formatierungen

Zahlen-Formatzeichenfolgen (standard)

Zahlen-Formatzeichenfolgen (benutzerdefiniert)

DateTime-Formatzeichenfolgen (standard)

DateTime-Formatzeichenfolgen (benutzerdefiniert)

Enumerations-Formatzeichenfolgen