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.
Cette première partie couvre les questions et réponses essentielles de l'entretien C# OOP
Réponse :
Certaines différences sont répertoriées ci-dessous :
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.
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()); } }
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>
Cette première partie couvre les questions et réponses avancées d'entretien C# OOP
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.
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.
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.
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.
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!