Fragen und Antworten zu C#-Interviews für Erstsemester und 2/3/5/10 Jahre Erfahrung
Hier finden Sie Fragen und Antworten zu C#-Vorstellungsgesprächen für neue und 5 oder 10 Jahre erfahrene Kandidaten, die ihren Traumjob bekommen möchten.
1) Was ist C#?
C# ist eine objektorientierte, typsichere und verwaltete Sprache, die zum Generieren vom .Net-Framework kompiliert wird Microsoft Mittelstufe.
👉Kostenloser PDF-Download: Fragen und Antworten zu C#-Interviews
2) Erklären Sie die Arten von Kommentaren in C# mit Beispielen
Einzelne Zeile
Beispiel:
//This is a single line comment
ii. Mehrere Zeilen (/* */)
Beispiel:
/*This is a multiple line commentWe are in line 2Last 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 gleichen Typs können nicht ausgeführt werden. Sobald der richtige Catch-Code ausgeführt wurde, wird die Steuerung an den „finally“-Block übertragen und anschließend wird der Code ausgeführt, der auf den „finally“-Block folgt.
4) Was ist der Unterschied zwischen public, static und void?
Öffentlich deklarierte Variablen oder Methoden sind überall in der Anwendung zugänglich. Auf statisch deklarierte Variablen oder Methoden kann global zugegriffen werden, ohne dass eine Instanz der Klasse erstellt werden muss. Auf statische Mitglieder kann standardmäßig nicht global zugegriffen werden. Dies hängt von der verwendeten Zugriffsart 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 angibt, dass die Methode oder Variable keinen Wert zurückgibt.
5) Was ist ein Objekt?
Ein Objekt ist eine Instanz einer Klasse, über die wir auf die Methoden dieser Klasse zugreifen. Das Schlüsselwort „Neu“ wird zum Erstellen eines Objekts verwendet. Eine Klasse, die ein Objekt im Speicher erstellt, enthält Informationen über die Methoden, Variablen und das Verhalten dieser Klasse.
6) Konstruktoren definieren
Ein Konstruktor ist eine Mitgliedsfunktion in einer Klasse, die denselben Namen wie ihre Klasse hat. Der Konstruktor wird automatisch aufgerufen, wenn eine Objektklasse erstellt wird. Beim Initialisieren der Klasse werden die Werte der Datenelemente erstellt.
ÄHNLICHE ARTIKEL
- C#-Klassen- und Objekt-Tutorial mit Beispielen
- C#-Sammlungs-Tutorial mit Beispielen
7) Was sind Jagged Arrays?
Das Array, das Elemente vom Typ Array enthält, wird Jagged Array genannt. Die Elemente können unterschiedliche Abmessungen und Größen haben. Wir können Jagged Array auch als Array von Arrays bezeichnen.
8) Was ist der Unterschied zwischen Ref- und Out-Parametern?
Ein als ref übergebenes Argument muss vor der Übergabe an die Methode initialisiert werden, während der Parameter out vor der Übergabe an eine Methode nicht initialisiert werden muss.
9) Wozu dient die „using“-Anweisung in C#?
Der „using“-Block wird verwendet, um eine Ressource abzurufen 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 möchten, müssen wir das Objekt in einen Bytestrom umwandeln. Der Prozess der Umwandlung eines Objekts in einen Bytestrom wird Serialisierung genannt. Damit ein Objekt serialisierbar ist, sollte es die Schnittstelle ISerialize implementieren. Deserialisierung ist die revanderer Prozess zum Erstellen 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, da wir in einer statischen Methode nur statische Variablen/Methoden 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.
13) Was ist eine Schnittstellenklasse? Nennen Sie ein Beispiel dafür
Eine Schnittstelle ist eine abstrakte Klasse, die nur über öffentliche abstrakte Methoden verfügt und die Methoden nur über die Deklaration und nicht über die Definition verfügen. 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 speichert einen Datenwert in seinem eigenen Speicherbereich. Beispiel
int a = 30;
Der Referenztyp speichert die Adresse des Objekts, in dem der Wert gespeichert wird. Es ist ein Zeiger auf einen anderen Speicherort.
string b = "Hello Guru99!!";
15) Was sind benutzerdefinierte Kontrolle und Benutzerkontrolle?
Benutzerdefinierte Steuerelemente sind Steuerelemente, die als kompilierter Code (DLLs) generiert werden. Diese sind einfacher zu verwenden und können dem Tool hinzugefügt werdenbox. Entwickler können Steuerelemente per Drag-and-Drop in ihre Webformulare ziehen. Attribute können zur Entwurfszeit. Wir können problemlos benutzerdefinierte Steuerelemente zu mehreren Anwendungen hinzufügen (bei gemeinsam genutzten DLLs). Wenn sie also privat sind, können wir sie in die DLL in das bin-Verzeichnis der Webanwendung kopieren, dann einen Verweis hinzufügen und sie verwenden.
Benutzersteuerelemente sind ASP-Includedateien sehr ähnlich und einfach zu erstellen. Benutzersteuerelemente können nicht im Tool platziert werdenbox und daraus gezogen – fallen gelassen. 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. Der versiegelte Modifikator wird verwendet, umrevAbleitung von einer Klasse. Wenn wir zwangsweise eine versiegelte Klasse als Basisklasse angeben, tritt ein Kompilierfehler auf.
17) Was ist Methodenüberladung?
Beim Überladen von Methoden werden mehrere Methoden mit demselben Namen und eindeutigen Signaturen in derselben Klasse erstellt. Beim 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 jedoch 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 zugegriffen werden assembly und auch von den Klassen, 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-Variable ändern, wird dem neuen Wert ein neuer Speicher zugewiesen und der previous Speicherzuweisung freigegeben. System.StringBuilder wurde entwickelt, um ein Konzept einer veränderlichen Zeichenfolge zu haben, bei dem eine Vielzahl von operaÄnderungen können ohne Zuweisung eines separaten Speicherplatzes für die geänderte Zeichenfolge durchgeführt werden.
22) Was ist der Unterschied zwischen System.Array.CopyTo() und System.Array.Clone()?
Die richtigen Clone()
Mit der Methode erstellen wir ein neues Array-Objekt, das alle Elemente im ursprünglichen Array enthält und verwendet CopyTo()
Methode. Alle Elemente eines vorhandenen Arrays werden in ein anderes vorhandenes Array kopiert. Beide Methoden führen eine flache Kopie durch.
23) Wie können wir die Elemente des Arrays in absteigender Reihenfolge sortieren?
Die richtigen Sort()
Methoden gefolgt von Reverse()
Methode.
24) Notieren Sie sich die C#-Syntax, um eine Ausnahme abzufangen
Um eine Ausnahme abzufangen, verwenden wir Try-Catch-Blöcke. Der Catch-Block kann einen Parameter vom Typ system.Exception haben.
Z.B:
try { GetAllData();} catch (Exception ex) {}
Im obigen Beispiel können wir den Parameter in der Catch-Anweisung weglassen.
25) Was ist der Unterschied zwischen einer Schnittstelle und einer abstrakten Klasse?
Bei Schnittstellen gibt es für alle Methoden nur eine Deklaration, aber keine Definition. 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, Finalize()
wird für den gleichen Zweck verwendet, gewährleistet jedoch nicht die Garbage Collection eines Objekts.
27) Was sind Zirkelverweise?
Ein Zirkelverweis ist eine Situation, in der zwei oder mehr Ressourcen voneinander abhängig sind, was zu einem Sperrzustand führt und die Ressourcen unbrauchbar macht.
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 Namespace System.Collections.Generic anstelle von Klassen wie ArrayList im Namespace System.Collections verwendet werden. Generika promotestet die Verwendung parametrisierter Typen.
29) Was ist ein Objektpool in .NET?
Ein Objektpool ist ein Container 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 Neuerstellen von Objekten.
30) Listen Sie die häufig verwendeten Ausnahmetypen 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 entsprechend den Benutzeranforderungen behandelt werden müssen. Für sie werden benutzerdefinierte Ausnahmen verwendet und definierte Ausnahmen verwendet.
32) Was sind Delegierte?
Delegierte sind gleich sind Funktionszeiger in C++, aber der einzige Unterschied besteht darin, dass sie im Gegensatz zu Funktionszeigern typsicher sind. Delegaten sind erforderlich, da sie zum Schreiben viel allgemeinerer typsicherer Funktionen verwendet werden können.
33) Wie vererbt man eine Klasse in eine andere Klasse in C#?
Als Vererbung wird der Doppelpunkt verwendet operator in C#. Platzieren Sie einfach einen Doppelpunkt und dann den Klassennamen.
public class DerivedClass : BaseClass
34) Was ist die Basisklasse in .net, von der alle Klassen abgeleitet sind?
System.Object
35) Was ist der Unterschied zwischen Methodenüberschreibung und Methodenüberladung?
Beim Überschreiben von Methoden ändern wir die Methodendefinition in der abgeleiteten Klasse, wodurch sich das Methodenverhalten ändert. Beim Überladen von Methoden wird eine Methode mit demselben Namen innerhalb derselben Klasse und unterschiedlichen Signaturen erstellt.
36) Auf welche verschiedenen Arten kann eine Methode überladen werden?
Methoden können mit unterschiedlichen Datentypen für einen Parameter, unterschiedlicher Reihenfolge der Parameter und unterschiedlicher Anzahl von Parametern überladen werden.
37) Warum können Sie den Barrierefreiheitsmodifikator 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 vererbt wird, aber prevverhindert, dass die Methode überschrieben wird?
Deklarieren Sie die Klasse als öffentlich und machen Sie die Methode zu p versiegelt.revverhindert, dass es ü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 kann ein Problem geben, wenn die Methoden verschiedener Schnittstellen unterschiedliche Daten erwarten, aber was Compiler c betrifftares Du bist inordnung.
40) Was ist der Unterschied zwischen einer Struktur und einer Klasse?
Strukturen sind Variablen vom Werttyp 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 verwende ich nullfähige Typen in .Net?
Werttypen können entweder ihre Normalwerte oder einen Nullwert annehmen. Solche Typen werden als nullbare Typen bezeichnet.
Int? someID = null;If(someID.HasVAlue){}
42) Wie können wir ein Array mit nicht standardmäßigen Werten erstellen?
Mit Enumerable.Repeat können wir ein Array mit nicht standardmäßigen Werten erstellen.
43) Was ist der Unterschied zwischen „ist“ und „wie“? operatoren in c#?
"ist" operator wird verwendet, um die Kompatibilität eines Objekts mit einem bestimmten Typ zu überprüfen, und gibt das Ergebnis als Boolescher Wert zurück.
"als" operator wird zum Umwandeln eines Objekts in einen Typ oder eine Klasse verwendet.
44) Was ist ein Multicast-Delegat?
Ein Delegat, dem mehrere Handler zugewiesen sind, wird Multicast-Delegat genannt. Jeder Handler ist einer Methode zugeordnet.
45) Was sind Indexer in C# .NET?
Indexer werden als intelligent bezeichnet Arrays in C#. Es ermöglicht die Indizierung der Instanzen einer Klasse auf die gleiche Weise wie ein Array.
Z.B:
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 Fehler-Stack bei, während „throw ex“ den Stack-Trace von ihrem Throw-Punkt aus erhält. 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 mithilfe von Reflection abgerufen werden.
48) Wie implementiert man ein Singleton-Entwurfsmuster in C#?
In einem Singleton-Muster kann eine Klasse nur eine Instanz haben und stellt global einen Zugriffspunkt darauf bereit.
Z.B:
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 zur 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 Intermediate-Sprache kompilieren kann.
51) Was ist eine Konsolenanwendung?
Eine Konsolenanwendung ist eine Anwendung, die in der Eingabeaufforderung in ausgeführt werden kann Windows. Für alle Anfänger auf .Net, ist die Erstellung einer Konsolenanwendung idealerweise zunächst der erste Schritt.
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(); } }}
Diese Interviewfragen helfen auch bei Ihrer mündlichen Prüfung
Du magst vielleicht:
- Was ist das .NET Framework? Erklären Sie…
- C#-Datenbankverbindung: So geht’s …
- C# Windows Tutorial zur Formularanwendung …
- C#-Tutorial im PDF-Format (Jetzt herunterladen)