Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Top 50 des questions et réponses d'entretien C# pour Experience &Freshers (mise à jour 2021)

C# est un langage de programmation à usage général qui englobe diverses disciplines telles que la programmation orientée objet, le typage statique, la programmation orientée composants, le typage fort, etc. C# est largement utilisé dans le framework ASP.NET pour créer des sites Web, des applications Web et des jeux. Il existe de vastes opportunités pour la programmation C # partout dans le monde. Si vous envisagez de faire carrière dans la programmation C#, vous devez passer un entretien au cours duquel on vous posera plusieurs questions et réponses d'entretien de base C# à C# délicates, comme indiqué ci-dessous.

Il s'agit d'une liste organisée des principales questions et réponses d'entretien C #, qui sont susceptibles d'être posées lors de l'entretien. Les candidats sont susceptibles de se voir poser des questions d'entretien C # de base à des questions d'entretien C # avancées en fonction de leur expérience et de divers autres facteurs. Cette liste couvre toutes les questions d'entretien C sharp pour les débutants ainsi que les questions d'entretien C# pour les professionnels expérimentés.

Téléchargement gratuit du PDF :Questions d'entretien en C#

Questions et réponses d'entretien C# pour les débutants et 2/3/5/10 ans d'expérience

Voici quelques questions d'entretien fréquemment posées aux débutants ainsi qu'aux candidats développeurs C# expérimentés pour obtenir le bon emploi.

Nous avons couvert plus de 50 questions et réponses de base pour faire avancer les entretiens C# fréquemment posées

Questions d'entretien de base en C# pour les débutants

1. Qu'est-ce que C# ?

C# est un langage orienté objet, de type sécurisé et géré qui est compilé par .Net Framework pour générer Microsoft Intermediate Language.

2. Expliquer les types de commentaires en C# avec des exemples

Ligne unique

Exemple :

//This is a single line comment

ii. Plusieurs lignes (/* */)

Exemple :

/*This is a multiple line comment
We are in line 2
Last line of comment*/

iii. Commentaires XML (///).

Ex :

/// summary;
/// Set error message for multilingual language.
/// summary

3. Plusieurs blocs catch peuvent-ils être exécutés ?

Non, plusieurs blocs catch de type similaire ne peuvent pas être exécutés. Une fois le bon code catch exécuté, le contrôle est transféré au bloc finally, puis le code qui suit le bloc finally est exécuté.

4. Quelle est la différence entre public, statique et vide ?

Les variables ou méthodes déclarées publiques sont accessibles n'importe où dans l'application. Les variables ou méthodes déclarées statiques sont accessibles globalement sans créer d'instance de la classe. Les membres statiques ne sont par défaut pas accessibles globalement, cela dépend du type d'accès modifié utilisé. Le compilateur stocke l'adresse de la méthode comme point d'entrée et utilise ces informations pour commencer l'exécution avant la création de tout objet. Et Void est un modificateur de type qui indique que la méthode ou la variable ne renvoie aucune valeur.

5. Qu'est-ce qu'un objet ?

Objet en C#

Un objet est une instance d'une classe à travers laquelle nous accédons aux méthodes de cette classe. Le mot-clé "Nouveau" est utilisé pour créer un objet. Une classe qui crée un objet en mémoire contiendra les informations sur les méthodes, les variables et le comportement de cette classe.

6. Définir les constructeurs

Un constructeur est une fonction membre d'une classe qui porte le même nom que sa classe. Le constructeur est automatiquement appelé chaque fois qu'une classe d'objets est créée. Il construit les valeurs des membres de données lors de l'initialisation de la classe.

7. Qu'est-ce que les tableaux Jagged ?

Le Array qui a des éléments de type array est appelé Jagged Array. Les éléments peuvent être de dimensions et de tailles différentes. Nous pouvons également appeler Jagged Array comme un tableau de tableaux.

8. Quelle est la différence entre les paramètres ref et out ?

Un argument passé en tant que ref doit être initialisé avant de passer à la méthode alors que le paramètre out n'a pas besoin d'être initialisé avant de passer à une méthode.

9. À quoi sert l'instruction "using" en C# ?

Le bloc "using" est utilisé pour obtenir une ressource et la traiter, puis la supprimer automatiquement lorsque l'exécution du bloc est terminée.

10. Qu'est-ce que la sérialisation ?

Lorsque nous voulons transporter un objet à travers un réseau, nous devons convertir l'objet en un flux d'octets. Le processus de conversion d'un objet en un flux d'octets est appelé sérialisation. Pour qu'un objet soit sérialisable, il doit implémenter l'interface ISerialize. La désérialisation est le processus inverse de création d'un objet à partir d'un flux d'octets.

11. Pouvons-nous utiliser la commande "this" dans une méthode statique ?

Nous ne pouvons pas utiliser "This" dans une méthode statique car nous ne pouvons utiliser que des variables/méthodes statiques dans une méthode statique.

12. Quelle est la différence entre les constantes et la lecture seule ?

Les variables constantes sont déclarées et initialisées au moment de la compilation. La valeur ne peut pas être modifiée par la suite. La lecture seule est utilisée uniquement lorsque nous voulons attribuer la valeur au moment de l'exécution.

Questions d'entretien avancées en C# pour 3/5/10 ans d'expérience

13. Qu'est-ce qu'une classe d'interface ? Donnez-en un exemple

Une interface est une classe abstraite qui n'a que des méthodes abstraites publiques, et les méthodes n'ont que la déclaration et non la définition. Ces méthodes abstraites doivent être implémentées dans les classes héritées.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 interface Guru99Interface
 {
  void SetTutorial(int pID, string pName);
  String GetTutorial();
 }

 class Guru99Tutorial : Guru99Interface
 {
  protected int TutorialID;
  protected string TutorialName;

  public void SetTutorial(int pID, string pName)
  {
   TutorialID = pID;
   TutorialName = pName;
  }

  public String GetTutorial()
  {
   return TutorialName;
  }

  static void Main(string[] args)
  {
   Guru99Tutorial pTutor = new Guru99Tutorial();

   pTutor.SetTutorial(1,".Net by Guru99");

   Console.WriteLine(pTutor.GetTutorial());

   Console.ReadKey();
  }
 }
}

14. Que sont les types de valeur et les types de référence ?

Un type valeur contient une valeur de données dans son propre espace mémoire. Exemple

int a = 30;

Le type de référence stocke l'adresse de l'objet où la valeur est stockée. C'est un pointeur vers un autre emplacement mémoire.

string b = "Hello Guru99!!";

15. Que sont le contrôle personnalisé et le contrôle utilisateur ?

Les contrôles personnalisés sont des contrôles générés sous forme de code compilé (Dll), ils sont plus faciles à utiliser et peuvent être ajoutés à la boîte à outils. Les développeurs peuvent faire glisser et déposer des contrôles dans leurs formulaires Web. Les attributs peuvent, au moment de la conception. Nous pouvons facilement ajouter des contrôles personnalisés à plusieurs applications (si DLL partagées). Donc, s'ils sont privés, nous pouvons copier vers dll dans le répertoire bin de l'application Web, puis ajouter une référence et pouvoir les utiliser.

Les contrôles utilisateur sont très similaires aux fichiers d'inclusion ASP et sont faciles à créer. Les contrôles utilisateur ne peuvent pas être placés dans la boîte à outils et glissés - déposés depuis celle-ci. Ils ont leur conception et leur code derrière. L'extension de fichier pour les contrôles utilisateur est ascx.

16. Que sont les classes scellées en C# ?

Nous créons des classes scellées lorsque nous voulons restreindre la classe à hériter. Modificateur scellé utilisé pour empêcher la dérivation d'une classe. Si nous spécifions de force une classe scellée comme classe de base, une erreur de compilation se produit.

17. Qu'est-ce que la surcharge de méthode ?

La surcharge de méthodes consiste à créer plusieurs méthodes portant le même nom avec des signatures uniques dans la même classe. Lors de la compilation, le compilateur utilise la résolution de surcharge pour déterminer la méthode spécifique à invoquer.

18. Quelle est la différence entre Array et Arraylist ?

Dans un tableau, nous ne pouvons avoir que des éléments du même type. La taille du tableau est fixe lors de la comparaison. Une liste de tableaux est similaire à un tableau, mais elle n'a pas de taille fixe.

19. Une méthode virtuelle privée peut-elle être remplacée ?

Non, car ils ne sont pas accessibles en dehors de la classe.

20. Décrivez le modificateur d'accessibilité "interne protégé".

Les variables/méthodes internes protégées sont accessibles au sein du même assembly ainsi qu'à partir des classes dérivées de cette classe parent.

21. Quelles sont les différences entre les classes System.String et System.Text.StringBuilder ?

System.String est immuable. Lorsque nous modifions la valeur d'une variable chaîne, alors une nouvelle mémoire est allouée à la nouvelle valeur et la précédente allocation mémoire est libérée. System.StringBuilder a été conçu pour avoir un concept de chaîne mutable où une variété d'opérations peuvent être effectuées sans allocation d'emplacement de mémoire séparé pour la chaîne modifiée.

22. Quelle est la différence entre System.Array.CopyTo() et System.Array.Clone() ?

En utilisant la méthode Clone(), nous créons un nouvel objet tableau contenant tous les éléments du tableau d'origine et en utilisant la méthode CopyTo(). Tous les éléments du tableau existant sont copiés dans un autre tableau existant. Les deux méthodes effectuent une copie superficielle.

23. Comment pouvons-nous trier les éléments du tableau par ordre décroissant ?

Utilisation des méthodes Sort() suivies de la méthode Reverse().

24. Notez la syntaxe C# pour intercepter une exception

Pour intercepter une exception, nous utilisons des blocs try-catch. Le bloc catch peut avoir un paramètre de type system.Exception.

Ex :

try {
    GetAllData();
} 
catch (Exception ex) {
}

Dans l'exemple ci-dessus, nous pouvons omettre le paramètre de l'instruction catch.

25. Quelle est la différence entre une interface et une classe abstraite ?

Les interfaces ont toutes les méthodes n'ayant qu'une déclaration mais pas de définition. Dans une classe abstraite, nous pouvons avoir des méthodes concrètes. Dans une classe d'interface, toutes les méthodes sont publiques. Une classe abstraite peut avoir des méthodes privées.

26. Quelle est la différence entre les méthodes Finalize() et Dispose() ?

Dispose() est appelée lorsque nous voulons qu'un objet libère toutes les ressources non gérées avec lui. D'autre part, Finalize() est utilisé dans le même but, mais il n'assure pas le ramasse-miettes d'un objet.

27. Que sont les références circulaires ?

La référence circulaire est une situation dans laquelle deux ou plusieurs ressources sont interdépendantes provoquent la condition de verrouillage et rendent les ressources inutilisables.

28. Que sont les génériques en C#.NET ?

Les génériques sont utilisés pour créer des classes de code réutilisables afin de réduire la redondance du code, d'augmenter la sécurité des types et les performances. En utilisant des génériques, nous pouvons créer des classes de collection. Pour créer une collection générique, l'espace de noms System.Collections.Generic doit être utilisé à la place de classes telles que ArrayList dans l'espace de noms System.Collections. Les génériques favorisent l'utilisation de types paramétrés.

29. Qu'est-ce qu'un pool d'objets dans .NET ?

Un pool d'objets est un conteneur contenant des objets prêts à être utilisés. Il suit l'objet actuellement utilisé, le nombre total d'objets dans le pool. Cela réduit les frais généraux liés à la création et à la recréation d'objets.

30. Répertoriez les types d'exceptions couramment utilisés dans .net

ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException ,OverflowException, IndexOutOfRangeException, InvalidCastException, InvalidOperationException, IOEndOfStreamException , NullReferenceException, OutOfMemoryException, StackOverflowException etc.

31. Que sont les exceptions personnalisées ?

Parfois, certaines erreurs doivent être traitées en fonction des besoins de l'utilisateur. Des exceptions personnalisées sont utilisées pour eux et sont utilisées des exceptions définies.

32. Que sont les délégués ?

Les délégués sont les mêmes que les pointeurs de fonction en C++, mais la seule différence est qu'ils sont de type sécurisé, contrairement aux pointeurs de fonction. Les délégués sont nécessaires car ils peuvent être utilisés pour écrire des fonctions de type sécurisé beaucoup plus génériques.

33. Comment hériter d'une classe dans une autre classe en C# ?

Deux-points est utilisé comme opérateur d'héritage en C#. Placez simplement deux-points, puis le nom de la classe.

classe publique DerivedClass :BaseClass

34. Quelle est la classe de base dans .net à partir de laquelle toutes les classes sont dérivées ?

System.Object

35. Quelle est la différence entre le remplacement de méthode et la surcharge de méthode ?

Dans le remplacement de méthode, nous modifions la définition de méthode dans la classe dérivée qui modifie le comportement de la méthode. La surcharge de méthode consiste à créer une méthode avec le même nom dans la même classe ayant des signatures différentes.

36. Quelles sont les différentes façons dont une méthode peut être surchargée ?

Les méthodes peuvent être surchargées en utilisant différents types de données pour un paramètre, un ordre différent des paramètres et un nombre différent de paramètres.

37. Pourquoi ne pouvez-vous pas spécifier le modificateur d'accessibilité pour les méthodes à l'intérieur de l'interface ?

Dans une interface, nous avons des méthodes virtuelles qui n'ont pas de définition de méthode. Toutes les méthodes sont là pour être redéfinies dans la classe dérivée. C'est pourquoi ils sont tous publics.

38. Comment pouvons-nous définir la classe à hériter, mais empêcher la méthode d'être surchargée ?

Déclarez la classe comme publique et rendez la méthode scellée pour éviter qu'elle ne soit remplacée.

39. Que se passe-t-il si les interfaces héritées ont des noms de méthode en conflit ?

L'implémentation dépend de vous car la méthode se trouve dans votre propre classe. Il peut y avoir un problème lorsque les méthodes de différentes interfaces attendent des données différentes, mais en ce qui concerne le compilateur, tout va bien.

40. Quelle est la différence entre un Struct et une Classe ?

Les structures sont des variables de type valeur et les classes sont des types référence. Les structures stockées sur la pile entraînent une surcharge supplémentaire mais une récupération plus rapide. Les structures ne peuvent pas être héritées.

41. Comment utiliser les types nullables dans .Net ?

Les types valeur peuvent prendre leurs valeurs normales ou une valeur nulle. Ces types sont appelés types nullables.

Int? someID = null;
If(someID.HasVAlue)
{
}

42. Comment pouvons-nous créer un tableau avec des valeurs autres que celles par défaut ?

Nous pouvons créer un tableau avec des valeurs autres que celles par défaut en utilisant Enumerable.Repeat.

43. Quelle est la différence entre les opérateurs "is" et "as" en c# ?

L'opérateur "est" est utilisé pour vérifier la compatibilité d'un objet avec un type donné, et il renvoie le résultat sous forme booléenne.

L'opérateur "as" est utilisé pour convertir un objet en un type ou une classe.

44. Qu'est-ce qu'un délégué multidiffusion ?

Un délégué ayant plusieurs gestionnaires qui lui sont assignés est appelé délégué multicast. Chaque gestionnaire est affecté à une méthode.

45. Que sont les indexeurs en C# .NET ?

Les indexeurs sont connus sous le nom de tableaux intelligents en C#. Il permet d'indexer les instances d'une classe de la même manière qu'un tableau.

Ex :

public int this[int index]    // Indexer declaration

46. Quelle est la différence entre "throw" et "throw ex" dans .NET ?

L'instruction "Throw" préserve la pile d'erreurs d'origine tandis que "throw ex" a la trace de la pile à partir de son point de lancement. Il est toujours conseillé d'utiliser "throw" car il fournit des informations d'erreur plus précises.

47. Que sont les attributs C# et leur signification ?

C # fournit aux développeurs un moyen de définir des balises déclaratives sur certaines entités, par exemple. La classe, la méthode, etc. sont appelées attributs. Les informations de l'attribut peuvent être récupérées lors de l'exécution à l'aide de Reflection.

48. Comment implémenter un modèle de conception singleton en C# ?

Dans un modèle singleton, une classe ne peut avoir qu'une seule instance et lui fournit un point d'accès global.

Ex :

Public sealed class Singleton
{
Private static readonly Singleton _instance = new Singleton();
}

49. Quelle est la différence entre directcast et ctype ?

DirectCast est utilisé pour convertir le type d'objet qui nécessite que le type d'exécution soit le même que le type spécifié dans DirectCast.

Ctype est utilisé pour la conversion où la conversion est définie entre l'expression et le type.

50. Le code C# est-il du code managé ou non managé ?

C# est un code géré car le Common Language Runtime peut compiler le code C# en langage intermédiaire.

51. Qu'est-ce que l'application Console ?

Une application console est une application qui peut être exécutée dans l'invite de commande de Windows. Pour tout débutant sur .Net, la création d'une application console est idéalement la première étape, pour commencer.

52. Donnez un exemple de suppression d'un élément de la file d'attente

La méthode dequeue est utilisée pour supprimer un élément de la file d'attente.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Queue qt = new Queue();
   qt.Enqueue(1);
   qt.Enqueue(2);
   qt.Enqueue(3);

   foreach (Object obj in qt)
   {
    Console.WriteLine(obj);
   }
    Console.WriteLine(); Console.WriteLine();
    Console.WriteLine("The number of elements in the Queue " + qt.Count);
    Console.WriteLine("Does the Queue contain " + qt.Contains(3));
    Console.ReadKey();
   }
 }
}

Langue C

  1. Principales mesures pour mesurer l'expérience de l'utilisateur final dans vos applications cloud
  2. Principales questions et réponses d'entretien sur le cloud pour 2020
  3. Les cinq principaux problèmes et défis de la 5G
  4. 10 meilleurs IDE C # pour Windows, Linux, Mac (mise à jour 2021)
  5. Supply Chain Finance :tendances, défis et questions pour 2019
  6. Mise à jour des récompenses :Robotics and Automation News Awards 2021 à venir
  7. meo classe 4 électrique questions et réponses orales
  8. La 5G et Edge soulèvent de nouveaux défis en matière de cybersécurité pour 2021
  9. Questions et réponses sur la fabrication Lights Out