Maison  >  Article  >  développement back-end  >  Questions d'entretien chez C# POO

Questions d'entretien chez C# POO

WBOY
WBOYoriginal
2024-09-03 15:35:40473parcourir

Présentation des questions d'entretien C# OOP

C# est un langage de programmation orienté objet, fonctionnel, générique et orienté composants. Il a été utilisé pour créer diverses applications ; il est particulièrement efficace pour créer des applications de bureau et des jeux Windows. Le développement Web peut également être réalisé efficacement avec C#, qui est de plus en plus populaire pour le développement mobile. C'est donc un excellent choix pour tout programmeur qui souhaite développer du Web et des jeux. Un langage à typage statique vérifie minutieusement le code source écrit avant qu'il ne devienne une application. C’est une langue complexe à apprendre et sa maîtrise peut prendre beaucoup de temps. Les développeurs peuvent utiliser divers outils multiplateformes pour créer des applications en C# pouvant être utilisées sur les plateformes mobiles et de bureau.

Si vous recherchez un emploi lié à C# OOP, vous devez vous préparer aux questions d'entretien C# OOP 2023. Bien que chaque entretien soit différent et que la portée du poste soit également différente, nous pouvons vous aider avec les meilleures questions d'entretien C# OOP avec réponses, qui vous aideront à franchir le pas et à réussir votre entretien.

Partie 1 – Questions d'entretien C# POO (de base)

Cette première partie couvre les questions et réponses essentielles de l'entretien C# OOP

1. Quelle est la différence entre l'interface et la classe abstraite ?

Réponse :

Certaines différences sont répertoriées ci-dessous :

  • Une classe abstraite peut avoir des méthodes non abstraites (méthodes concrètes), alors que dans le cas de l'interface, toutes les formes doivent être abstraites.
  • Une classe abstraite peut déclarer ou utiliser des variables, alors qu'une interface ne le peut pas.
  • Dans une classe abstraite, toutes les données membres ou fonctions sont privées par défaut, tandis que dans une interface, toutes sont publiques ; nous ne pouvons pas les modifier manuellement.
  • Une classe abstraite utilise un constructeur, alors que nous n'avons aucun constructeur dans une interface.
  • Une classe peut implémenter n'importe quel nombre d'interfaces, mais une sous-classe ne peut, au maximum, utiliser qu'une seule classe abstraite.

2. Que sont les délégués et leurs utilisations ?

Réponse :

Un objet délégué est une variable de type référence qui contient la référence à une méthode. La connexion peut être modifiée au moment de l'exécution, qui appartient à un objet d'un délégué. Un objet délégué peut avoir de nombreuses références de fonctions, également appelées liste d'appel, qui font référence à des tâches dans une séquence FIFO ; nous pouvons référencer de nouvelles fonctions dans cette liste au moment de l'exécution par un opérateur += et les supprimer par l'opérateur -=.

Passons aux questions d'entretien C# POO suivantes.

3. Quelle est la différence entre une liaison tardive et une liaison anticipée ?

Réponse :

Dans le polymorphisme au moment de la compilation ou Early Binding, nous utiliserons plusieurs méthodes avec le même nom mais un type de paramètre différent ou plusieurs paramètres. Pour cette raison, nous pouvons effectuer des tâches différentes avec le même nom de méthode dans la même classe, également appelée surcharge de méthode.

public class TestData
{
public int Add(int a, int b, int c)
{
return a + b + c;
}
public int Add(int a, int b)
{
return a + b;
}
}
class Program
{
static void Main(string[] args)
{
TestData dataClass = new TestData();
int add2 = dataClass.Add(45, 34, 67);
int add1 = dataClass.Add(23, 34);
}
}

Un autre nom pour le polymorphisme dynamique ou d'exécution est la liaison tardive. Ici, le nom de la méthode et la signature de la méthode (le nombre de paramètres et le type de paramètre doivent être les mêmes et peuvent avoir une implémentation différente). Le remplacement de méthode est un exemple de polymorphisme dynamique.

public class Drawing
{
public virtual double Area()
{
return 0;
}
}
public class Square : Drawing
{
public double Length { get; set; }
public Square()
{
Length = 6;
}
public override double Area()
{
return Math.Pow(Length, 2);
}
}
public class Rectangle : Drawing
{
public double Height { get; set; }
public double Width { get; set; }
public Rectangle()
{
Height = 5.3;
Width = 3.4;
}
public override double Area()
{
return Height * Width;
}
}
class Program
{
static void Main(string[] args)
{
Drawing square = new Square();
Console.WriteLine("Area :" + square.Area());
Drawing rectangle = new Rectangle();
Console.WriteLine("Area :" + rectangle.Area());
}
}

4. Que se passerait-il si les interfaces héritées avaient des noms de méthodes contradictoires ?

Réponse :

Voici quelques-unes des questions typiques d'entretien C# OOP. Imaginez que la même classe contient des méthodes en conflit. Dans ce cas, nous ne pouvons pas implémenter leur corps indépendamment dans la même classe à cause du même nom et de la même signature, nous devons donc utiliser le nom de l'interface avant le nom de la méthode pour supprimer cette confusion de méthode.

interface testInterface1 {<br> void Show();<br> }<br> interface testInterface2 {<br> void Show();<br> }<br> class Abc: testInterface1,<br> testInterface2 {<br> void testInterface1.Show() {<br> Console.WriteLine("For testInterface1 !!");<br> }<br> void testInterface2.Show() {<br> Console.WriteLine("For testInterface2 !!");<br> }<br> }<br>

Partie 2 – Questions d'entretien C# OOP (avancées)

Cette première partie couvre les questions et réponses avancées d'entretien C# OOP

6. Qu'est-ce qu'un modificateur d'accessibilité et combien y en a-t-il en C# ?

Réponse :

Les modificateurs d'accès sont des mots-clés utilisés pour spécifier l'accessibilité déclarée d'un membre ou d'un type. En C#, il existe 5 types différents de modificateurs d'accès.

Public – Aucune restriction sur l'accès aux membres publics.

Privé – accès limité au sein d’une définition de classe ; si aucun n'est spécifié, alors c'est la valeur par défaut.

Protégé – l'accès est limité à la définition de la classe et à toute classe qui hérite du cours.

Interne – l'accès est limité exclusivement aux classes définies par le projet en cours.

7. What is a virtual method in C#?

Answer:

Developers use a virtual method to define a method that can be redefined in derived classes. We make a virtual method in the base class using the virtual keyword, and that method is overridden in the derived class using the override keyword.

Let us move on to the following C# OOP Interview Questions.

8. How to avoid NULL in C#?

Answer:

Null is not an object. We can have a class, but a variable with a NULL value is not pointing to any object. We might come across a piece of code that contains many conditional statements that check if the value of a variable is NULL. Let’s review a static method:

public static string DisplayUpperString( string s ){
string upper = string.Empty;
If( s == null ) {
upper = null;
}
else {
upper = s.ToUpper();
}
return upper;
}

This code is fine and converts to the upper case of a given string.
But from an OO perspective, consider constructing an object that represents nothing rather than evaluating it for NULL.

public static String DisplayUpperString ( PossibleString s ){
string upper = s.ToPossibleUpper();
return upper;
}

Now the function is less cluttered, more readable, and no longer uses the check for a NULL value.

9. What is the extension method in C#, and how to use them?

Answer:

Interviewers frequently ask about extension methods in C# OOP interviews. This method enables you to add methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type. Extension methods are only in scope when explicitly importing the namespace into your source code using a directive.

10. Can “this” keyword be used within a static method?

Answer:

Since “this” keyword returns a reference to the current instance of a class, we cannot use this inside a static method. And static members exist without any instance of the class and call with the name of the class, not by instance. The “this” keyword is implicitly defined in every constructor and non-static method as a particular kind of reference variable as the first argument of the class type in which it is defined.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn