Q1. Dans quelle(s) situation(s) les interfaces sont-elles meilleures que les classes abstraites ?
Lorsque vous devez définir les caractéristiques d'un type d'objet, utilisez une interface. Lorsque vous devez définir les capacités d'un type d'objet, utilisez une classe abstraite.
Les interfaces sont un héritage des anciennes versions de C# et sont interchangeables avec la fonctionnalité de classe abstraite plus récente.
Lorsque vous avez besoin d'une liste de capacités et de données qui sont agnostiques aux classes, utilisez une interface. Lorsque vous avez besoin qu'un certain type d'objet partage des caractéristiques, utilisez une classe abstraite.
Vous devriez utiliser à la fois une interface et une classe abstraite lors de la définition de tout objet complexe.
Q2. Quelle déclaration est vraie concernant les délégués ?
Les délégués ne sont pas pris en charge dans la version actuelle de C#
Ils ne peuvent pas être utilisés comme rappels.
Seules les variables peuvent être passées aux délégués en tant que paramètres.
Q5. Quelle est la différence entre les mots-clés ref et out ?
Les variables passées pour spécifier que le paramètre est un paramètre de sortie, tandis que ref spécifie qu'une variable peut être passée à une fonction sans être initialisée.
Les variables passées à ref peuvent être passées à une fonction sans être initialisées, tandis que out spécifie que la valeur est une valeur de référence qui peut être modifiée à l'intérieur de la méthode appelante.
Les variables passées à out peuvent être passées à une fonction sans être initialisées, tandis que ref spécifie que la valeur est une valeur de référence qui peut être modifiée à l'intérieur de la méthode appelante.
Les variables passées à ref spécifient que le paramètre est un paramètre de sortie, tandis que out spécifie qu'une variable peut être passée à une fonction sans être initialisée.
Q16. Dans quel ordre les noms des employés dans cet exemple seraient-ils imprimés sur la console ?
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);}