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

Top 50 C# Interviewfragen & Antworten (2025 Edition) – Für Einsteiger & Erfahrene Entwickler

C# ist eine vielseitige, objektorientierte Sprache, die auf dem .NET-Framework läuft. Sie treibt ASP.NET-Webanwendungen, Desktop-Software und sogar Spiele über Unity an. Wenn Sie eine Karriere in C# anstreben, wird das Beherrschen dieser Interviewfragen Ihnen helfen, sowohl Tiefe als auch Breite Ihres Wissens gegenüber Personalverantwortlichen zu demonstrieren.

C# Interviewfragen für Einsteiger & 2/3/5/10 Jahre Erfahrung

Diese Fragen decken grundlegende Konzepte, Syntax und häufige Fallstricke ab, die Interviewer von Kandidaten erwarten.

1. Was ist C#?

C# ist eine statisch typisierte, typsichere, objektorientierte Sprache, die von der .NET-Laufzeit in Microsoft Intermediate Language (MSIL) kompiliert wird.

2. Erklären Sie die Arten von Kommentaren in C# mit Beispielen

• Einzeilig: // Dies ist ein einzeiliger Kommentar
• Mehrzeilig: /* Dies ist ein mehrzeiliger Kommentar
Er kann sich über mehrere Zeilen erstrecken */

• XML-Dokumentation: /// <summary>Fehlermeldung festlegen</summary>

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

Nein. Sobald ein passender catch-Block ausgeführt wird, geht die Kontrolle an den finally-Block (falls vorhanden) und dann an den Code nach der try-catch-Struktur.

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

public – Von jedem Code zugänglich, der auf den Typ verweist.
static – Gehört zum Typ selbst, nicht zu einer Instanz.
void – Zeigt an, dass eine Methode keinen Wert zurückgibt.

5. Was ist ein Objekt?

Ein Objekt ist eine Instanz einer Klasse, die mit dem new-Schlüsselwort erstellt wird. Es bietet Zugriff auf die Member der Klasse (Methoden, Eigenschaften, Felder).

6. Definieren Sie Konstruktoren.

Ein Konstruktor ist eine spezielle Methode, die denselben Namen wie die Klasse trägt. Er wird automatisch ausgeführt, wenn eine Instanz erstellt wird, und initialisiert Felder sowie führt Setup-Aufgaben durch.

7. Was sind verzweigte Arrays (Jagged Arrays)?

Verzweigte Arrays sind Arrays von Arrays. Jedes Element kann ein Array unterschiedlicher Länge referenzieren, was unregelmäßige Datenstrukturen ermöglicht.

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

ref erfordert, dass die Variable vor dem Aufruf initialisiert ist. out nicht; der Aufgerufene muss vor dem Rückgabewert einen Wert zuweisen.

9. Welchen Zweck hat die using-Anweisung in C#?

Der using-Block stellt sicher, dass eine IDisposable-Ressource automatisch freigegeben wird, wenn der Block verlassen wird, selbst wenn eine Ausnahme auftritt.

10. Was ist Serialisierung?

Serialisierung wandelt ein Objekt in einen Bytestream zur Speicherung oder Übertragung um. Deserialisierung kehrt den Prozess um und erstellt das Objekt neu. Typen müssen mit [Serializable] markiert sein oder ISerializable implementieren.

11. Kann das this-Schlüsselwort in einer statischen Methode verwendet werden?

Nein. this bezieht sich auf die aktuelle Instanz, die statische Methoden nicht haben.

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

Konstanten sind Compilezeit-Werte, die sich nicht ändern können. Schreibgeschützte Felder werden einmal zur Laufzeit zugewiesen (entweder inline oder im Konstruktor) und können danach nicht mehr geändert werden.

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

13. Was ist ein Interface? Geben Sie ein Beispiel.

Ein Interface deklariert einen Vertrag aus Methoden und Eigenschaften ohne Implementierung. Beispiel:

public interface IGreeter { void SetName(string name); string Greet(); }
public class FriendlyGreeter : IGreeter {
private string _name;
public void SetName(string name) => _name = name;
public string Greet() => $"Hello, {_name}!";
}

14. Was sind Werttypen und Referenztypen?

Werttypen (z. B. int, struct) speichern Daten direkt auf dem Stack. Referenztypen (z. B. class, string) halten eine Referenz auf das Objekt im Heap.

15. Was sind Custom Controls und User Controls?

Custom Controls werden in DLLs kompiliert und können auf Formulare gezogen werden. User Controls (.ascx) sind zusammengesetzte Steuerelemente, die aus bestehenden Steuerelementen erstellt wurden und sich für wiederverwendbare UI-Komponenten eignen.

16. Was sind sealed-Klassen in C#?

sealed-Modifizierer verhindert die Unterklassenbildung und stellt sicher, dass das Verhalten der Klasse unverändert bleibt.

17. Was ist Methodenüberladung?

Methodenüberladung ermöglicht es mehreren Methoden, denselben Namen zu tragen, sich aber in ihren Parameterlisten zu unterscheiden. Der Compiler wählt die passende Überladung basierend auf den Argumenten aus.

18. Was ist der Unterschied zwischen Array und ArrayList?

Ein Array hat eine feste Größe und homogene Elementtypen. ArrayList (inzwischen weitgehend durch List<T> ersetzt) ist dynamisch und speichert Objekte.

19. Kann eine private virtuelle Methode überschrieben werden?

Nein. Eine private Methode ist für abgeleitete Klassen nicht sichtbar, daher kann sie nicht überschrieben werden.

20. Beschreiben Sie den Zugriffsmodifizierer protected internal.

Mit protected internal markierte Member sind innerhalb derselben Assembly oder von abgeleiteten Klassen in anderen Assemblies zugänglich.

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

String ist unveränderlich; jede Modifikation erstellt eine neue Instanz. StringBuilder ist veränderbar und für effiziente Zeichenkettenmanipulation konzipiert.

22. Unterschied zwischen Array.CopyTo() und Array.Clone()?

Clone() erstellt eine flache Kopie des gesamten Arrays. CopyTo() kopiert Elemente in ein bereits existierendes Zielarray.

23. Wie kann man ein Array in absteigender Reihenfolge sortieren?

Verwenden Sie Array.Sort() gefolgt von Array.Reverse(), oder stellen Sie einen benutzerdefinierten Comparer bereit.

24. C#-Syntax zum Abfangen einer Exception.

Beispiel:

try { GetAllData(); } catch (Exception ex) { // Fehler behandeln }

25. Unterschied zwischen Interface und abstrakter Klasse?

Interfaces deklarieren nur Signaturen; alle Member sind implizit public und abstrakt. Abstrakte Klassen können konkrete Implementierungen und private Member bereitstellen.

26. Unterschied zwischen Finalize() und Dispose()?

Dispose gibt unverwaltete Ressourcen deterministisch frei. Finalize (Destruktor) wird vom Garbage Collector aufgerufen und ist nicht-deterministisch.

27. Was sind zirkuläre Referenzen?

Zwei oder mehr Objekte referenzieren sich gegenseitig, was potenziell die Garbage Collection verhindert und Speicherlecks verursacht.

28. Was sind Generics in C#?

Generics ermöglichen typsicheren, wiederverwendbaren Code (z. B. List<T>), reduzieren Runtime-Casting und verbessern die Performance.

29. Was ist ein Objektpool in .NET?

Ein Objektpool hält eine Menge initialisierter Objekte zur Wiederverwendung bereit, minimiert kostspielige Allokationen und Garbage Collection.

30. Häufig verwendete Exception-Typen in .NET auflisten.

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

31. Was sind benutzerdefinierte Exceptions?

Benutzerdefinierte Exceptions sind benutzerdefinierte Typen, die von Exception abgeleitet sind und auf spezifische Fehlerszenarien zugeschnitten sind.

32. Was sind Delegates?

Delegates sind typsichere Funktionszeiger, die Callbacks und Event-Handling ermöglichen.

33. Wie vererbt man eine Klasse in C#?

Verwenden Sie die Doppelpunkt-Syntax:

public class Derived : Base { }

34. Was ist die Basisklasse, von der alle .NET-Klassen abgeleitet sind?

System.Object.

35. Unterschied zwischen Methodenüberschreibung und Überladung?

Überschreibung ändert die Implementierung einer virtuellen Methode in einer abgeleiteten Klasse. Überladung erstellt mehrere Methoden mit demselben Namen, aber unterschiedlichen Signaturen.

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

Durch Variation des Parametertyps, der Reihenfolge oder der Anzahl.

37. Warum kann man für Methoden innerhalb eines Interfaces keine Zugänglichkeit angeben?

Interface-Member sind implizit public; die Angabe von Zugänglichkeit wäre redundant.

38. Wie kann man einer Klasse Vererbung erlauben, aber eine Methode vor Überschreibung schützen?

Deklarieren Sie die Methode als sealed innerhalb einer nicht-sealed Klasse.

39. Was passiert, wenn vererbte Interfaces konfliktreiche Methodennamen haben?

Implementieren Sie die Methode einmal in der abgeleiteten Klasse, sodass sie alle Interface-Verträge erfüllt.

40. Unterschied zwischen struct und class?

Structs sind Werttypen, die auf dem Stack gespeichert werden, können nicht von anderen Structs erben und sind konventionell unveränderlich. Klassen sind Referenztypen, die auf dem Heap gespeichert werden.

41. Wie verwendet man nullable Types in .NET?

Hängen Sie ? an einen Werttyp an:

int? id = null; if (id.HasValue) { /* id.Value verwenden */ }

42. Wie erstellt man ein Array mit Nicht-Standardwerten?

Verwenden Sie Enumerable.Repeat oder Collection Initializers.

43. Unterschied zwischen is und as Operatoren?

is prüft Typkompatibilität und gibt einen Boolean zurück. as castet und gibt null zurück, wenn der Cast fehlschlägt.

44. Was ist ein Multicast Delegate?

Ein Delegate, das mehrere Methoden referenziert; das Aufrufen führt alle angehängten Methoden in Reihenfolge aus.

45. Was sind Indexer in C#?

Indexer erlauben den zugriff auf Objekte wie Arrays:

public int this[int index] { get { … } set { … } }

46. Unterschied zwischen throw und throw ex?

throw bewahrt den ursprünglichen Stack Trace; throw ex setzt ihn zurück, was das Debugging erschwert.

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

Attribute fügen Metadaten zu Typen und Membern hinzu; sie können zur Laufzeit über Reflection abgefragt werden.

48. Wie implementiert man das Singleton-Design-Pattern?

Beispiel:

public sealed class Singleton {
private static readonly Singleton _instance = new Singleton();
public static Singleton Instance => _instance;
private Singleton() { }
}

49. Unterschied zwischen DirectCast und CType?

DirectCast erfordert, dass der Runtime-Typ exakt dem Zieltyp entspricht. CType führt eine vom Zieltyp definierte Konvertierung durch, möglicherweise unter Aufruf von Konvertierungsoperatoren.

50. Ist C# verwalteter oder unverwalteter Code?

C# ist verwalteter Code; die CLR kompiliert es zu MSIL und übernimmt das Speichermanagement.

51. Was ist eine Konsolenanwendung?

Eine Konsolenanwendung läuft in einem Eingabeaufforderungsfenster und ist oft der erste Schritt für .NET-Einsteiger.

52. Beispiel zum Entfernen eines Elements aus einer Queue

Verwenden Sie Dequeue(), um das vordere Element zu entfernen:

Queue<int> queue = new Queue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
int removed = queue.Dequeue(); // removed = 1

C Sprache

  1. Wichtige Cloud-Metriken, die Endbenutzererfahrung und Performance antreiben
  2. Cloud Interview Guide 2024: Experten-Fragen & Antworten
  3. 5Gs Top 5 Herausforderungen: Spektrum, Kosten, Abdeckung, Geräte, Sicherheit navigieren
  4. Top 10 C# IDEs für Windows, macOS und Linux – 2021 Review
  5. Supply Chain Finance 2019: Trends, Herausforderungen und Schlüsselfragen
  6. Robotics & Automation News kündigt 2021 Awards Ceremony an – Virtual Event für Ende 2021
  7. MEO Klasse 4 Elektrische Mündliche Prüfung – Umfassende Fragen & Antworten & Praktische Anleitung
  8. 5G und Edge: Neue Cybersecurity-Herausforderungen für 2021
  9. Lights-Out Manufacturing für CNC-Shops: FAQs & Implementierungsguide
  10. 2021 Top 5 Druckluft- & Gas-Artikel: Schlüsselinovationen & Industriestandards