Q1. In welchen Situationen sind Schnittstellen besser als abstrakte Klassen?
Wenn Sie die Merkmale eines Objekttyps definieren müssen, verwenden Sie eine Schnittstelle. Wenn Sie die Fähigkeiten eines Objekttyps definieren müssen, verwenden Sie eine abstrakte Klasse.
Schnittstellen sind ein Erbe älterer Versionen von C# und sind austauschbar mit dem neueren Feature abstrakte Klasse.
Wenn Sie eine Liste von Fähigkeiten und Daten benötigen, die klassenagnostisch sind, verwenden Sie eine Schnittstelle. Wenn Sie möchten, dass ein bestimmter Objekttyp Merkmale gemeinsam nutzt, verwenden Sie eine abstrakte Klasse.
Sie sollten sowohl eine Schnittstelle als auch eine abstrakte Klasse verwenden, wenn Sie ein komplexes Objekt definieren.
Q2. Welche Aussage über Delegaten ist wahr?
Delegaten werden in der aktuellen Version von C# nicht unterstützt.
Sie können nicht als Rückrufe verwendet werden.
Nur Variablen können Delegaten als Parameter übergeben werden.
Q5. Was ist der Unterschied zwischen den Schlüsselwörtern ref und out?
Variablen, die ref übergeben werden, geben an, dass der Parameter ein Ausgabeparameter ist, während ref angibt, dass eine Variable an eine Funktion übergeben werden kann, ohne initialisiert zu werden.
Variablen, die ref übergeben werden, können an eine Funktion übergeben werden, ohne initialisiert zu werden, während out angibt, dass der Wert ein Referenzwert ist, der innerhalb der aufrufenden Methode geändert werden kann.
Variablen, die out übergeben werden, können an eine Funktion übergeben werden, ohne initialisiert zu werden, während ref angibt, dass der Wert ein Referenzwert ist, der innerhalb der aufrufenden Methode geändert werden kann.
Variablen, die ref übergeben werden, geben an, dass der Parameter ein Ausgabeparameter ist, während out angibt, dass eine Variable an eine Funktion übergeben werden kann, ohne initialisiert zu werden.
Q16. In welcher Reihenfolge würden die Mitarbeiternamen in diesem Beispiel auf der Konsole gedruckt?
string[]employees = { "Joe", "Bob", "Carol", "Alice", "Will" };IEnumerable<string> employeeQuery = from person in employees
orderby person
select person;
foreach(string employee in employeeQuery)
{
Console.WriteLine(employee);}