QCM C# – Framework .NET – Partie 22

QCM sur C# avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses sur C# comprennent divers sujets(.NET, les structures, les tableaux, les interfaces, etc …). Et sont tirés d’un vrai entretien écrit et certaines parties sont en direct. Cette méthode d’apprentissage systématique préparera facilement toute personne pour réussir son test sur C#.
 
 

1. Le code C# suivant utilise les types génériques. Quelle est l’explication incorrecte ?
T t = default(T);

A Si T est de type int, la variable t a pour valeur 0

B Si T est un type de référence, la variable t contient null

C Si T est de type string, la variable t contient une chaîne vide

D Si T est de type bool, la variable t contient false

C
Default(T). Ce mot-clé renvoie la valeur par défaut du type de paramètre. Les types numériques ont une valeur par défaut de 0; les types de référence et de valeur nullable ont une valeur par défaut de null.

 

2. Quel sera le résultat du programme suivant ?
List<string> names = new List<string>(); 
names.AddRange(new []{"Alex","Bob","Jean"}); 
var v = names.OrderBy(n => n.Length).SingleOrDefault(); 
Console.WriteLine(v);

A null sera affiché dans la console

B 4 sera affiché dans la console

C Provoque une erreur de compilation

D Une exception se produira au moment de l’exécution

D
System.InvalidOperationException: Sequence contains more than one element

Le problème avec SingleOrDefault. Cette méthode ne fonctionne que si la collection contient exactement 0 ou 1 élément. On doit utiliser FirstOrDefault qui réussira quel que soit le nombre d’éléments dans la collection.

 

3. Trouvez un exemple invalide d’utilisation de var

A var a = 3.141592;

B var a = null;

C var a = db.Stores;

D var a = db.Stores.Single(p => p.Id == 1);

B
Lorsque nous disons, var a = null ; le compilateur ne peut pas résoudre ce problème parce qu’il n’y a pas de type lié à null. Vous pouvez le faire comme ceci.

string a = null;
var b = a;

Cela fonctionnera parce que maintenant b peut connaître son type au moment de la compilation, qui est string dans ce cas.

 

 
 

4. Lorsque vous souhaitez fournir d’autres ressources pour d’autres cultures ou d’autres langues, quelle Assembly devez-vous créer ?

A Public Assembly

B Private Assembly

C Shared Assembly

D Satellite Assembly

D
Un assembly satellite est une bibliothèque compilée (DLL) qui contient des ressources « localisables » spécifiques à une culture donnée, telles que des chaînes de caractères, des bitmaps, etc.

Il est probable que vous utilisiez des assemblys satellites lors de la création d’une application multilingue. Ils sont utilisés pour déployer des applications dans plusieurs cultures, avec un assembly satellite par culture (comportement par défaut).

 

5. Lequel des éléments suivants ne permet pas d’utiliser le mot-clé static de C# ?

A (Méthode) static void Run() {}

B (Propriété) static int Prop {get; set;}

C (Champ) static int _field;

D (Classe) static class MyClass {}

E (Constructeur) static MyClass() {}

F (Destructeur) static ~MyClass() {}

G (Evénement) static event EventHandler evt;

F
Les classes statiques n’ont pas de destructeurs, car une classe statique n’est jamais détruite.

 

6. En C#, qu’est-ce qui est similaire au pointeur de fonction C++ ?

A Événements

B Interface

C Délégué

D Méthode

C
Un délégué est un type qui représente des références à des méthodes ayant une liste de paramètres et un type de retour particuliers. Lorsque vous instanciez un délégué, vous pouvez associer son instance à n’importe quelle méthode dont la signature et le type de retour sont compatibles. Vous pouvez invoquer (ou appeler) la méthode par l’intermédiaire de l’instance du délégué.

 

 
 

7. Laquelle des méthodes C# suivantes n’est pas valide ?

A public void Set(dynamic o) {}

B public dynamic Get() {}

C private var GetData() {}

D protected override int[] A() {}

C
var ne peut être utilisé que lorsqu’une variable locale est déclarée et initialisée dans la même instruction.

 

8. Laquelle des affirmations suivantes n’est pas correcte pour créer un nouvel objet en C# ?

A var a = new Int32();

B var a = new String();

C var a = new IComparable();

D var a = new [] {0};

C
var a = new IComparable(); n’est pas correcte pour créer un nouvel objet en C#.

 

9. Si vous exécutez un fichier exécutable C# plusieurs fois, plusieurs processus sont créés. Si vous souhaitez n’avoir qu’un seul processus d’application même si vous le lancez plusieurs fois, que pouvez-vous utiliser ?

A Semaphore

B Mutex

C Section critique

D Verrou C#

B
Le mutex est une primitive de synchronisation qui accorde un accès exclusif à la ressource partagée à un seul thread. Si un thread acquiert un mutex, le second thread qui souhaite acquérir ce mutex est suspendu jusqu’à ce que le premier thread libère le mutex.

 

 
 

10. Parmi les opérateurs suivants, lequel ne peut pas utiliser la surcharge d’opérateur ?

A opérateur ++

B opérateur &

C opérateur ||

D opérateur true

C
Un opérateur peut être surchargé en lui définissant une fonction. La fonction de l’opérateur est déclarée en utilisant le mot-clé operator.

Un type défini par l’utilisateur ne peut pas surcharger les opérateurs logiques conditionnels && et || . Toutefois, si un type défini par l’utilisateur surcharge les opérateurs true et false et l’opérateur & ou | d’une certaine manière, l’opération && ou ||, respectivement, peut être évaluée pour les opérandes de ce type.

 

Exercice C# Corrigé - Partie 1

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *