QCM C# – Framework .NET – Partie 18

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. Que faire si une classe implémente deux interfaces qui, par coïncidence, ont une méthode portant le même nom et la même signature ?

A Implémenter les deux interfaces de manière implicite.

B Implémenter au moins une interface de manière explicite.

C Une classe ne peut pas implémenter des interfaces qui ont le même nom de méthode et la même signature

D Une classe ne peut pas implémenter plusieurs interfaces.

B
L’implémentation explicite d’une interface permet également au programmeur d’implémenter deux interfaces ayant les mêmes noms de membres et de donner à chaque membre de l’interface une implémentation séparée.

 

2. Une interface peut-elle hériter d’une ou de plusieurs interfaces en C# ?

A Vrais

B Faux

A
Vrais. Une interface peut-elle hériter d’une ou de plusieurs interfaces en C#. L’interface dérivée hérite des membres de ses interfaces de base. Exemple:

public interface IScanner
{
    void Scan();
}

public interface IPrinter
{
    void Print();
}

public interface IPhotocopier : IScanner, IPrinter
{
    void Copy();
}

 

3. Quel sera le résultat du programme suivant ?
class Personne { 
	protected int Id { get; set; } 
} 

class Etudiant : Personne { 
	public int GetId() { 
		return this.Id; 
	} 
} 

Personne p = new Etudiant(); 
p.Id = 4; 

A Il se compilera et s’exécutera avec succès.

B Aucune sortie

C Erreur d’exécution

D Erreur de compilation

D
Ligne 12: ‘p.Id’ est inaccessible en raison de son niveau de protection.

 

 
 

4. Quel sera le résultat du programme suivant ?
class Personne {
	public void Introduction(int age, string nom){ 
		Console.WriteLine("Je suis " + nom); 
	} 
	public void Introduction(string name, int age=0){ 
		Console.WriteLine($"Je suis {nom} et j'ai {age} ans"); 
	} 
} 

Personne p = new Personne(); 
p.Introduction("Alex");

A Je suis Alex

B Je suis Alex et j’ai 0 ans

C Erreur d’exécution

D Erreur de compilation

B
Le code appel la 2éme méthode Introduction() dû à la correspondance des paramètres.

 

5. Parmi les classes statiques suivantes, laquelle utiliserez-vous pour les opérations d’E/S de fichiers ?

A FileInfo

B File

C Directory

D Path

B
File est une classe statique qui peut être utilisée pour effectuer des opérations d’E/S sur les fichiers physiques. La classe statique File comprend diverses méthodes utilitaires permettant d’interagir avec le fichier physique de n’importe quel type (binaire, texte, etc.). La classe FileInfo est une classe non statique qui peut être utilisée pour mieux contrôler le système de fichiers.

 

6. Laquelle des classes suivantes est la classe de base pour toutes les opérations d’E/S provenant de différentes sources ?

A System.IO.Stream

B System.IO.FileStream

C System.IO.MemoryStream

D System.IO.NetworkStream

A
Stream est la classe de base abstraite de tous les flux. Un stream(flux) est une abstraction d’une séquence d’octets, comme un fichier, un périphérique d’entrée/sortie, un tuyau de communication inter-processus ou une socket TCP/IP. La classe Stream et ses classes dérivées fournissent une vue générique de ces différents types d’entrée et de sortie, et isolent le programmeur des détails spécifiques du système d’exploitation et des périphériques sous-jacents.

 

 
 

7. Quel sera le résultat du programme suivant ?
public static void Main() 
{ 
	var input = "100"; 
	if (int.TryParse(input, out int result)) 
		Console.WriteLine(result); 
	else
		Console.WriteLine("Impossible d'analyser l'entrée"); 
}

A 100

B Impossible d’analyser l’entrée

C Erreur d’exécution

D Erreur de compilation

A
C# TryParse est une méthode qui permet de convertir facilement la représentation d’un nombre sous forme de chaîne de caractères en sa valeur. Contrairement à la méthode Parse, TryParse est conçue pour gérer les situations où la conversion peut échouer sans lever d’exception.

 

8. Quel sera le résultat du programme suivant ?
static void Main() { 
	Func<string, string> show = delegate (string name) {
		return "Hi " + name; 
	}; 
	Console.Write(show("Alex")); 
}

A Alex

B Hi Alex

C Erreur d’exécution

D Erreur de compilation

B
Le délégué Func<T,TResult> est un autre type de délégué prédéfini qui représente une méthode avec zéro ou plusieurs paramètres d’entrée qui renvoie une valeur. Contrairement au délégué Action, le type de retour d’un délégué Func peut être n’importe quel type.

 

9. Quand T sera-t-il remplacé par le type réel dans le programme suivant ?
class ValueProcessor<T>
{
    //Implémentation...
}

A Temps d’exécution

B Temps de compilation

C Temps de débogage

D Jamais

B
T sera remplacé par le type réel au moment de la compilation.

 

 
 

10. Laquelle des contraintes génériques suivantes restreint le paramètre de type générique à un objet de la classe qui implémente l’interface IEnumerable ?

A class Processor<T> where T: class:IEnumerable

B class Processor<T> T: interface IEnumerable

C class Processor<T> where T: IEnumerable

D class Processor<T> where T:new()

C
La classe Processor exige que son type d’argument implémente l’interface IEnumerable:

class Processor<T> where T: IEnumerable

 

Exercice C# Corrigé - Partie 1

Laisser un commentaire

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