Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

Top 50 Fragen und Antworten zu C#-Interviews für erfahrene und Studienanfänger (Update 2021)

C# ist eine Allzweck-Programmiersprache, die verschiedene Disziplinen wie objektorientierte Programmierung, statische Typisierung, komponentenorientierte Programmierung, starke Typisierung usw. umfasst. C# wird im ASP.NET-Framework häufig zum Erstellen von Websites, Webanwendungen und Spielen verwendet. Es gibt weltweit enorme Möglichkeiten für die C#-Programmierung. Wenn Sie daran denken, eine Karriere in der C#-Programmierung aufzubauen, müssen Sie ein Vorstellungsgespräch bestehen, in dem Ihnen einige C#-Grundfragen bis hin zu kniffligen C#-Interviewfragen und -antworten gestellt werden, wie unten aufgeführt.

Dies ist eine kuratierte Liste der wichtigsten Fragen und Antworten zu C#-Interviews, die wahrscheinlich während des Interviews gestellt werden. Abhängig von ihrer Erfahrung und verschiedenen anderen Faktoren werden den Kandidaten wahrscheinlich grundlegende C#-Interviewfragen bis hin zu fortgeschrittenen C#-Interviewfragen gestellt. Diese Liste enthält alle C-Sharp-Interviewfragen für Studienanfänger sowie C#-Interviewfragen für erfahrene Berufstätige.

Kostenloser PDF-Download:Interviewfragen für C#-Interviews

Fragen und Antworten zu C#-Interviews für Studienanfänger und 2/3/5/10 Jahre Erfahrung

Hier sind einige häufig gestellte Interviewfragen für Studienanfänger und erfahrene Kandidaten für C#-Entwickler, um den richtigen Job zu finden.

Wir haben mehr als 50 grundlegende Fragen und Antworten zu häufig gestellten C#-Interviews behandelt

Grundlegende C#-Interviewfragen für Studienanfänger

1. Was ist C#?

C# ist eine objektorientierte, typsichere und verwaltete Sprache, die von .Net Framework kompiliert wird, um Microsoft Intermediate Language zu generieren.

2. Erklären Sie Kommentartypen in C# anhand von Beispielen

Einzeilig

Beispiel:

//This is a single line comment

ii. Mehrzeilig (/* */)

Beispiel:

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

iii. XML-Kommentare (///).

Beispiel:

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

3. Können mehrere catch-Blöcke ausgeführt werden?

Nein, mehrere Catch-Blöcke ähnlichen Typs können nicht ausgeführt werden. Sobald der richtige Catch-Code ausgeführt wurde, wird die Steuerung an den finally-Block übertragen, und dann wird der Code ausgeführt, der auf den finally-Block folgt.

4. Was ist der Unterschied zwischen public, static und void?

Auf öffentlich deklarierte Variablen oder Methoden kann überall in der Anwendung zugegriffen werden. Auf statisch deklarierte Variablen oder Methoden kann global zugegriffen werden, ohne dass eine Instanz der Klasse erstellt wird. Statische Member sind standardmäßig nicht global zugänglich, dies hängt von der Art des verwendeten geänderten Zugriffs ab. Der Compiler speichert die Adresse der Methode als Einstiegspunkt und verwendet diese Informationen, um mit der Ausführung zu beginnen, bevor Objekte erstellt werden. Und Void ist ein Typmodifikator, der besagt, dass die Methode oder Variable keinen Wert zurückgibt.

5. Was ist ein Objekt?

Objekt in C#

Ein Objekt ist eine Instanz einer Klasse, über die wir auf die Methoden dieser Klasse zugreifen. Das Schlüsselwort „Neu“ wird verwendet, um ein Objekt zu erstellen. Eine Klasse, die ein Objekt im Speicher erstellt, enthält die Informationen über die Methoden, Variablen und das Verhalten dieser Klasse.

6. Konstruktoren definieren

Ein Konstruktor ist eine Elementfunktion in einer Klasse, die den gleichen Namen wie ihre Klasse hat. Der Konstruktor wird automatisch aufgerufen, wenn eine Objektklasse erstellt wird. Es konstruiert die Werte von Datenelementen, während es die Klasse initialisiert.

7. Was sind Jagged Arrays?

Das Array, das Elemente vom Typ Array enthält, wird als gezacktes Array bezeichnet. Die Elemente können unterschiedliche Abmessungen und Größen haben. Wir können gezackte Arrays auch als Arrays von Arrays bezeichnen.

8. Was ist der Unterschied zwischen ref- und out-Parametern?

Ein als ref übergebenes Argument muss initialisiert werden, bevor es an die Methode übergeben wird, während der out-Parameter nicht initialisiert werden muss, bevor es an eine Methode übergeben wird.

9. Wozu dient die „using“-Anweisung in C#?

Der „using“-Block wird verwendet, um eine Ressource zu erhalten und zu verarbeiten und dann automatisch zu entsorgen, wenn die Ausführung des Blocks abgeschlossen ist.

10. Was ist Serialisierung?

Wenn wir ein Objekt durch ein Netzwerk transportieren wollen, müssen wir das Objekt in einen Bytestrom umwandeln. Der Prozess der Umwandlung eines Objekts in einen Bytestrom wird als Serialisierung bezeichnet. Damit ein Objekt serialisierbar ist, sollte es ISerialize Interface implementieren. Deserialisierung ist der umgekehrte Prozess der Erstellung eines Objekts aus einem Bytestrom.

11. Können wir „diesen“ Befehl innerhalb einer statischen Methode verwenden?

Wir können ‚This‘ nicht in einer statischen Methode verwenden, weil wir nur statische Variablen/Methoden in einer statischen Methode verwenden können.

12. Was ist der Unterschied zwischen Konstanten und schreibgeschützt?

Konstante Variablen werden zur Kompilierzeit deklariert und initialisiert. Der Wert kann nachträglich nicht mehr geändert werden. Schreibgeschützt wird nur verwendet, wenn wir den Wert zur Laufzeit zuweisen möchten.

C# Fortgeschrittene Interviewfragen für 3/5/10 Jahre Erfahrung

13. Was ist eine Schnittstellenklasse? Geben Sie ein Beispiel dafür

Eine Schnittstelle ist eine abstrakte Klasse, die nur öffentliche abstrakte Methoden hat, und die Methoden haben nur die Deklaration und nicht die Definition. Diese abstrakten Methoden müssen in den geerbten Klassen implementiert werden.

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. Was sind Werttypen und Referenztypen?

Ein Werttyp enthält einen Datenwert in seinem eigenen Speicherplatz. Beispiel

int a = 30;

Der Referenztyp speichert die Adresse des Objekts, in dem der Wert gespeichert wird. Es ist ein Zeiger auf einen anderen Speicherplatz.

string b = "Hello Guru99!!";

15. Was sind benutzerdefinierte Kontrolle und Benutzerkontrolle?

Benutzerdefinierte Steuerelemente sind als kompilierter Code (Dlls) generierte Steuerelemente, die einfacher zu verwenden sind und der Toolbox hinzugefügt werden können. Entwickler können Steuerelemente per Drag-and-Drop auf ihre Webformulare ziehen. Attribute können zur Entwurfszeit. Wir können mehreren Anwendungen (bei gemeinsam genutzten DLLs) problemlos benutzerdefinierte Steuerelemente hinzufügen. Wenn sie also privat sind, können wir sie in das dll-in-bin-Verzeichnis der Webanwendung kopieren und dann einen Verweis hinzufügen und sie verwenden.

Benutzersteuerelemente sind den ASP-Include-Dateien sehr ähnlich und einfach zu erstellen. Benutzersteuerelemente können nicht in der Toolbox platziert und per Drag &Drop daraus gezogen werden. Sie haben ihr Design und ihren Code-Behind. Die Dateierweiterung für Benutzersteuerelemente ist ascx.

16. Was sind versiegelte Klassen in C#?

Wir erstellen versiegelte Klassen, wenn wir die zu vererbende Klasse einschränken möchten. Versiegelter Modifikator, der verwendet wird, um die Ableitung von einer Klasse zu verhindern. Wenn wir eine versiegelte Klasse zwangsweise als Basisklasse angeben, tritt ein Kompilierungsfehler auf.

17. Was ist Methodenüberladung?

Beim Überladen von Methoden werden mehrere Methoden mit demselben Namen und eindeutigen Signaturen in derselben Klasse erstellt. Wenn wir kompilieren, verwendet der Compiler die Überladungsauflösung, um die spezifische aufzurufende Methode zu bestimmen.

18. Was ist der Unterschied zwischen Array und Arraylist?

In einem Array können wir nur Elemente desselben Typs haben. Die Größe des Arrays ist beim Vergleich festgelegt. Eine Arrayliste ähnelt einem Array, hat aber keine feste Größe.

19. Kann eine private virtuelle Methode überschrieben werden?

Nein, da sie außerhalb der Klasse nicht zugänglich sind.

20. Beschreiben Sie den Barrierefreiheitsmodifikator „protected internal“.

Auf geschützte interne Variablen/Methoden kann innerhalb derselben Assembly und auch von den Klassen zugegriffen werden, die von dieser übergeordneten Klasse abgeleitet sind.

21. Was sind die Unterschiede zwischen den Klassen System.String und System.Text.StringBuilder?

System.String ist unveränderlich. Wenn wir den Wert einer String-Variablen ändern, wird dem neuen Wert ein neuer Speicher zugewiesen und die vorherige Speicherzuweisung freigegeben. System.StringBuilder wurde entwickelt, um ein Konzept eines veränderlichen Strings zu haben, in dem eine Vielzahl von Operationen durchgeführt werden können, ohne einen separaten Speicherort für den modifizierten String zuzuweisen.

22. Was ist der Unterschied zwischen System.Array.CopyTo() und System.Array.Clone() ?

Mit der Clone()-Methode erstellen wir ein neues Array-Objekt, das alle Elemente im ursprünglichen Array enthält, und verwenden die CopyTo()-Methode. Alle Elemente des vorhandenen Arrays werden in ein anderes vorhandenes Array kopiert. Beide Methoden führen eine flache Kopie aus.

23. Wie können wir die Elemente des Arrays in absteigender Reihenfolge sortieren?

Verwendung von Sort()-Methoden gefolgt von Reverse()-Methoden.

24. Schreiben Sie die C#-Syntax auf, um eine Ausnahme abzufangen

Um eine Ausnahme abzufangen, verwenden wir Try-Catch-Blöcke. Catch-Block kann einen Parameter vom Typ system.Exception haben.

Beispiel:

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

Im obigen Beispiel können wir den Parameter aus der catch-Anweisung weglassen.

25. Was ist der Unterschied zwischen einer Schnittstelle und einer abstrakten Klasse?

Schnittstellen haben alle Methoden, die nur eine Deklaration, aber keine Definition haben. In einer abstrakten Klasse können wir einige konkrete Methoden haben. In einer Schnittstellenklasse sind alle Methoden öffentlich. Eine abstrakte Klasse kann private Methoden haben.

26. Was ist der Unterschied zwischen den Methoden Finalize() und Dispose()?

Dispose() wird aufgerufen, wenn wir möchten, dass ein Objekt alle nicht verwalteten Ressourcen mit ihm freigibt. Andererseits wird Finalize() für den gleichen Zweck verwendet, aber es stellt nicht die Garbage Collection eines Objekts sicher.

27. Was sind Zirkelverweise?

Ein Zirkelverweis ist eine Situation, in der zwei oder mehr Ressourcen voneinander abhängig sind, wodurch die Sperrbedingung verursacht wird und die Ressourcen unbrauchbar werden.

28. Was sind Generika in C#.NET?

Generics werden verwendet, um wiederverwendbare Codeklassen zu erstellen, um die Coderedundanz zu verringern, die Typsicherheit und die Leistung zu erhöhen. Mithilfe von Generika können wir Sammlungsklassen erstellen. Um eine generische Sammlung zu erstellen, sollte der System.Collections.Generic-Namespace anstelle von Klassen wie ArrayList im System.Collections-Namespace verwendet werden. Generics fördert die Verwendung parametrisierter Typen.

29. Was ist ein Objektpool in .NET?

Ein Objekt-Pool ist ein Behälter mit gebrauchsfertigen Objekten. Es verfolgt das aktuell verwendete Objekt und die Gesamtzahl der Objekte im Pool. Dies reduziert den Aufwand für das Erstellen und erneute Erstellen von Objekten.

30. Listen Sie die häufig verwendeten Arten von Ausnahmen in .net auf

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

31. Was sind benutzerdefinierte Ausnahmen?

Manchmal gibt es einige Fehler, die gemäß den Benutzeranforderungen behandelt werden müssen. Benutzerdefinierte Ausnahmen werden für sie verwendet und definierte Ausnahmen verwendet.

32. Was sind Delegierte?

Delegaten sind dieselben wie Funktionszeiger in C++, aber der einzige Unterschied besteht darin, dass sie im Gegensatz zu Funktionszeigern typsicher sind. Delegates sind erforderlich, da sie verwendet werden können, um viel allgemeinere typsichere Funktionen zu schreiben.

33. Wie vererben Sie eine Klasse in eine andere Klasse in C#?

Doppelpunkt wird als Vererbungsoperator in C# verwendet. Setzen Sie einfach einen Doppelpunkt und dann den Klassennamen.

öffentliche Klasse DerivedClass :BaseClass

34. Was ist die Basisklasse in .net, von der alle Klassen abgeleitet werden?

System.Object

35. Was ist der Unterschied zwischen Methodenüberschreibung und Methodenüberladung?

Beim Methodenüberschreiben ändern wir die Methodendefinition in der abgeleiteten Klasse, die das Methodenverhalten ändert. Das Überladen von Methoden ist das Erstellen einer Methode mit demselben Namen innerhalb derselben Klasse mit unterschiedlichen Signaturen.

36. Welche Möglichkeiten gibt es, eine Methode zu überladen?

Methoden können mit unterschiedlichen Datentypen für einen Parameter, einer anderen Reihenfolge von Parametern und einer anderen Anzahl von Parametern überladen werden.

37. Warum können Sie den Zugänglichkeitsmodifikator für Methoden innerhalb der Schnittstelle nicht angeben?

In einer Schnittstelle haben wir virtuelle Methoden, die keine Methodendefinition haben. Alle Methoden sind dazu da, in der abgeleiteten Klasse überschrieben zu werden. Deshalb sind sie alle öffentlich.

38. Wie können wir die Klasse so einstellen, dass sie geerbt wird, aber verhindern, dass die Methode überschrieben wird?

Deklarieren Sie die Klasse als öffentlich und versiegeln Sie die Methode, um zu verhindern, dass sie überschrieben wird.

39. Was passiert, wenn die geerbten Schnittstellen widersprüchliche Methodennamen haben?

Die Implementierung liegt bei Ihnen, da sich die Methode in Ihrer eigenen Klasse befindet. Es könnte ein Problem geben, wenn die Methoden von verschiedenen Schnittstellen unterschiedliche Daten erwarten, aber soweit es den Compiler interessiert, sind Sie in Ordnung.

40. Was ist der Unterschied zwischen einer Struktur und einer Klasse?

Strukturen sind Werttypvariablen und Klassen sind Referenztypen. Auf dem Stack gespeicherte Strukturen verursachen zusätzlichen Overhead, aber einen schnelleren Abruf. Strukturen können nicht vererbt werden.

41. Wie verwendet man nullfähige Typen in .Net?

Werttypen können entweder ihre normalen Werte oder einen Nullwert annehmen. Solche Typen werden nullfähige Typen genannt.

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

42. Wie können wir ein Array mit Nicht-Standardwerten erstellen?

Mit Enumerable.Repeat.

können wir ein Array mit Nicht-Standardwerten erstellen

43. Was ist der Unterschied zwischen „is“- und „as“-Operatoren in c#?

Der Operator „is“ wird verwendet, um die Kompatibilität eines Objekts mit einem bestimmten Typ zu prüfen, und er gibt das Ergebnis als Boolean zurück.

Der „as“-Operator wird zum Umwandeln eines Objekts in einen Typ oder eine Klasse verwendet.

44. Was ist ein Multicast-Delegierter?

Ein Delegat, dem mehrere Handler zugewiesen sind, wird als Multicast-Delegat bezeichnet. Jeder Handler ist einer Methode zugeordnet.

45. Was sind Indexer in C# .NET?

Indexer werden in C# als intelligente Arrays bezeichnet. Es ermöglicht, dass die Instanzen einer Klasse auf die gleiche Weise wie ein Array indiziert werden.

Beispiel:

public int this[int index]    // Indexer declaration

46. Was ist der Unterschied zwischen „throw“ und „throw ex“ in .NET?

Die „Throw“-Anweisung behält den ursprünglichen Fehlerstack bei, während „throw ex“ den Stack-Trace von ihrem Throw-Punkt hat. Es wird immer empfohlen, „throw“ zu verwenden, da es genauere Fehlerinformationen liefert.

47. Was sind C#-Attribute und ihre Bedeutung?

C# bietet Entwicklern eine Möglichkeit, deklarative Tags für bestimmte Entitäten zu definieren, z. Klasse, Methode usw. werden als Attribute bezeichnet. Die Informationen des Attributs können zur Laufzeit mit Reflection abgerufen werden.

48. Wie implementiert man ein Singleton-Entwurfsmuster in C#?

In einem Singleton-Muster kann eine Klasse nur eine Instanz haben und bietet einen globalen Zugriffspunkt darauf.

Beispiel:

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

49. Was ist der Unterschied zwischen Directcast und ctype?

DirectCast wird verwendet, um den Objekttyp zu konvertieren, der erfordert, dass der Laufzeittyp mit dem angegebenen Typ in DirectCast übereinstimmt.

Ctype wird für die Konvertierung verwendet, wobei die Konvertierung zwischen dem Ausdruck und dem Typ definiert wird.

50. Ist C#-Code verwalteter oder nicht verwalteter Code?

C# ist verwalteter Code, da die Common Language Runtime C#-Code in eine Zwischensprache kompilieren kann.

51. Was ist eine Konsolenanwendung?

Eine Konsolenanwendung ist eine Anwendung, die in der Eingabeaufforderung von Windows ausgeführt werden kann. Für jeden Anfänger in .Net ist das Erstellen einer Konsolenanwendung idealerweise der erste Schritt, um damit zu beginnen.

52. Geben Sie ein Beispiel für das Entfernen eines Elements aus der Warteschlange

Die Dequeue-Methode wird verwendet, um ein Element aus der Warteschlange zu entfernen.

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();
   }
 }
}

C Sprache

  1. Top-Metriken zur Messung der Endbenutzererfahrung in Ihren Cloud-Anwendungen
  2. Top Cloud-Interview-Fragen und -Antworten für 2020
  3. Die fünf wichtigsten Probleme und Herausforderungen für 5G
  4. 10 beste C#-IDE für Windows, Linux, Mac (Update 2021)
  5. Supply Chain Finance:Trends, Herausforderungen und Fragen für 2019
  6. Preisaktualisierung:Robotics and Automation News Awards 2021 werden vergeben
  7. meo klasse 4 elektrische mündliche fragen und antworten
  8. 5G und Edge stellen neue Herausforderungen für die Cybersicherheit im Jahr 2021 dar
  9. Fragen und Antworten zu Lights Out Manufacturing
  10. Top 5 Artikel zu Druckluft und Gas im Jahr 2021