C#

Beispiel 1:
1.	Erklären Sie den Unterschied zwischen Value- und Referenztype sowie Boxing und Unboxing.
2.	Was ist der Unterschied zwischen einer abstrakten Klasse und einem Interface?
3.	Wie werden Methoden gleichen Namens in unterschiedlichen Interfaces verwendet?
4.	Was sind Attribute? Werden Attribute zur Compilezeit oder Laufzeit ausgeführt?
5.	Wie funktionieren Delegates?
Beispiel 2:
Konvertieren Sie folgenden C++ Code nach C#.

typedef struct MAPPING_PAIR {
    ulong valA;
    ulong valB;
}

typedef struct GET_DESCRIPTOR {
  uint nNumPairs;
  MAPPING_PAIR Pairs[ 1 ];
}

GET_DESCRIPTOR* DeSerialize( char* filename );

void DoStuff() {
    GET_DESCRIPTOR* pDesc = DeSerialize(″pairs.dat″);

    for ( uint i = 0; i < pDesc->nNumPairs; i++ ) {
        valA = pDesc->Pairs[ i ].valA;
        valB = pDesc->Pairs[ i ].valB;
    }
}

Beispiel 3:
Erstellen Sie eine Basisklasse Person mit den private Membervariablen Vorname und Nachname. Implementieren Sie für beide Variablen entsprechende Properties.
Leiten Sie zwei Klassen für männliche und weibliche Personen von der Basisklasse ab.
Die Ausgabe des Namens bzw. des Geschlechts soll über ein Interface realisiert werden. Erstellen Sie ein entsprechendes Interface und binden Sie es in die beiden neuen Klassen ein. Damit später eine Kontrolle möglich ist, sorgen Sie dafür, dass sich die Ausgaben wirklich unterscheiden.
Beispiel 4:
Schreiben Sie in C# ein Programm das eine ganze Zufallszahl zwischen 2 und 100 erzeugt und überprüft ob die Zahl eine Primzahl ist. Der Rückgabewert soll ein boolscher Wert sein.
Primzahlen sind Zahlen, die nur durch sich selbst und 1 teilbar sind, wobei 2 keine Primzahl ist.
Beispiel 5:
Wenn in einer Basisklasse eine Funktion als virtual gekennzeichnet ist und in einer abgeleiteten Klasse mit override überschrieben wird, wie kann die abgeleitete Klasse auf die Funktion der Basisklasse zugreifen?