Einführung C # OOP Interview Fragen und Antworten
C # ist eine objektorientierte, funktionale, generische und komponentenorientierte Programmiersprache. Es wird zum Erstellen einer Vielzahl von Anwendungen verwendet und eignet sich besonders zum Erstellen von Windows-Desktopanwendungen und -Spielen. Webentwicklung kann auch effizient mit C # durchgeführt werden und ist bei mobilen Entwicklungen immer beliebter geworden. Somit ist es eine ausgezeichnete Wahl für jeden Programmierer, der Web- und Spieleentwicklung betreiben möchte. Da es sich um eine statisch typisierte Sprache handelt, wird der geschriebene Quellcode gründlich geprüft, bevor er in eine Anwendung umgewandelt wird. Es ist eine komplexe Sprache zu lernen und zu beherrschen, kann eine beträchtliche Menge an Zeit in Anspruch nehmen. Es stehen verschiedene plattformübergreifende Tools zur Verfügung, mit denen in C # geschriebene Anwendungen über Mobilgeräte und Desktops verwendet werden können.
Wenn Sie nach einem Job suchen, der mit C # OOP zusammenhängt, müssen Sie sich auf die C # OOP-Interviewfragen 2019 vorbereiten. Obwohl jedes Interview anders ist und der Umfang eines Jobs auch anders ist, können wir Ihnen bei den wichtigsten C # OOP-Interviewfragen mit Antworten helfen, die Ihnen dabei helfen, den Sprung zu wagen und Ihr Interview zum Erfolg zu führen.
Im Folgenden finden Sie die wichtigsten C # OOP-Interviewfragen für 2019, die in einem Interview häufig gestellt werden. Diese wichtigen Fragen sind in zwei Teile unterteilt:
Teil 1 - Fragen zum C # OOP-Vorstellungsgespräch (Grundkenntnisse)
In diesem ersten Teil werden grundlegende Fragen und Antworten zu C # OOP-Vorstellungsgesprächen behandelt
1. Was ist der Unterschied zwischen Interface und Abstract Class?
Antworten:
Ein Unterschied ist unten aufgeführt:
- Eine abstrakte Klasse kann nicht abstrakte Methoden (konkrete Methoden) haben, während im Falle einer Schnittstelle alle Methoden abstrakt sein müssen.
- Eine abstrakte Klasse kann Variablen deklarieren oder verwenden, während eine Schnittstelle dies nicht darf.
- In einer abstrakten Klasse sind standardmäßig alle Datenelemente oder Funktionen privat, während in der Schnittstelle alle öffentlich sind. Sie können nicht manuell geändert werden.
- Eine abstrakte Klasse verwendet einen Konstruktor, während wir in einer Schnittstelle keine Art von Konstruktor haben.
- Eine Klasse kann beliebig viele Interfaces implementieren, aber eine Unterklasse kann höchstens eine abstrakte Klasse verwenden.
2. Was sind Delegierte und deren Verwendung?
Antworten:
Ein Delegate-Objekt ist eine Referenztypvariable, mit der die Referenz auf eine Methode gespeichert wird. Die Referenz kann zur Laufzeit geändert werden, die von einem Objekt eines Delegaten gehalten wird. Ein Delegate-Objekt kann viele Funktionsreferenzen enthalten, die auch als Aufrufliste bezeichnet werden und Funktionen in einem Sequenz-FIFO referenzieren. Wir können neue Funktionen zur Laufzeit durch einen Operator + = in dieser Liste referenzieren und durch einen Operator - = entfernen.
Delegaten werden insbesondere für die Implementierung von Ereignissen und Rückrufmethoden verwendet. Alle Delegierten werden implizit vom System abgeleitet. Klasse delegieren.
Fahren wir mit den nächsten C # OOP-Interviewfragen fort
3. Was ist ein Unterschied zwischen einer späten Bindung und einer frühen Bindung?
Antworten:
In Compile Time Polymorphism oder Early Binding verwenden wir mehrere Methoden mit demselben Namen, aber einem anderen Parametertyp oder möglicherweise der Nummer oder dem Parameter, da wir mit demselben Methodennamen in derselben Klasse, die auch ist, verschiedene Aufgaben ausführen können bekannt als Methodenüberladung.
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);
)
)
Dynamischer / Laufzeit-Polymorphismus wird auch als späte Bindung bezeichnet. Der Methodenname und die Methodensignatur (Anzahl der Parameter und Parametertyp müssen identisch sein und können unterschiedlich implementiert sein). Das Überschreiben von Methoden ist ein Beispiel für dynamischen Polymorphismus.
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());
)
)
4. Was würde passieren, wenn die geerbten Schnittstellen widersprüchliche Methodennamen haben?
Antworten:
Dies sind die häufigsten C # OOP-Interviewfragen, die in einem Interview gestellt werden. Wenn wir widersprüchliche Methoden in derselben Klasse haben, können wir ihren Body aufgrund des gleichen Namens und der gleichen Signatur nicht unabhängig in derselben Klasse implementieren. Daher müssen wir den Schnittstellennamen vor dem Methodennamen verwenden, um diese Methodenverwechslung zu beseitigen.
interface testInterface1 (
void Show();
)
interface testInterface2 (
void Show();
)
class Abc: testInterface1,
testInterface2 (
void testInterface1.Show() (
Console.WriteLine("For testInterface1 !!");
)
void testInterface2.Show() (
Console.WriteLine("For testInterface2 !!");
)
)
5. Auf welche Weise kann eine Methode überladen werden?
Antworten:
Das Überladen von Methoden ist ein anderer Name für den Polymorphismus zur Kompilierungszeit, bei dem eine Methode mit demselben Namen, jedoch mit einer anderen Signatur erstellt werden kann. Es wird zur Kompilierungszeit durchgeführt und wir können es auf mehrere Arten tun, aber der Methodenname würde gleich bleiben.
Eine Reihe von Parametern kann unterschiedlich sein.
Der Parametertyp kann unterschiedlich sein.
Die Reihenfolge der Parameter kann unterschiedlich sein.
Beispiel -
static int volume ( int x )(
return (x * x * x);
)
static double volume (float f, int i)(
return 3.14 * f * f * I;
)
static long volume (long l, int b, int n)(
return l * b * h;
)
Teil 2 - Fragen zu C # OOP-Vorstellungsgesprächen (Fortgeschrittene)
Dieser erste Teil behandelt fortgeschrittene Fragen und Antworten zu C # OOP-Vorstellungsgesprächen
6. Was ist ein Eingabehilfen-Modifikator und wie viele gibt es in C #?
Antworten:
Zugriffsmodifikatoren sind Schlüsselwörter, mit denen die deklarierte Zugänglichkeit eines Mitglieds oder eines Typs angegeben wird. In C # gibt es 5 verschiedene Arten von Zugriffsmodifikatoren.
Öffentlich - Keine Zugriffsbeschränkungen für öffentliche Mitglieder.
Privater eingeschränkter Zugriff innerhalb einer Klassendefinition. Wenn keiner angegeben ist, ist dies die Standardeinstellung.
Geschützt - Der Zugriff ist auf die Klassendefinition und alle Klassen beschränkt, die von der Klasse erben.
Der interne Zugriff ist ausschließlich auf die im aktuellen Projekt definierten Klassen beschränkt
Auf ein geschütztes internes Element kann an einer beliebigen Stelle in derselben Assembly zugegriffen werden. Der Zugriff ist auch über die Vererbung dieser Klasse möglich. Auf dieses Element kann nur außerhalb der Assembly in der abgeleiteten Klasse zugegriffen werden.
7. Was ist eine virtuelle Methode in C #?
Antworten:
Eine virtuelle Methode ist eine Methode, die in abgeleiteten Klassen neu definiert werden kann. Eine virtuelle Methode ist sowohl in einer Basisklasse implementiert als auch von dieser Klasse abgeleitet. Es wird verwendet, wenn die Grundfunktionalität einer Methode dieselbe ist, aber manchmal mehr Funktionalität in der abgeleiteten Klasse benötigt wird. In der Basisklasse wird eine virtuelle Methode erstellt, die in der abgeleiteten Klasse überschrieben werden kann. Wir erstellen eine virtuelle Methode in der Basisklasse mit dem Schlüsselwort virtual, und diese Methode wird in der abgeleiteten Klasse mit dem Schlüsselwort override überschrieben.
Beim Aufrufen einer virtuellen Methode wird der Laufzeit-Typ des Objekts auf ein überschreibendes Element überprüft. Das überschreibende Element in der am meisten abgeleiteten Klasse wird aufgerufen. Dies kann das ursprüngliche Element sein, wenn keine abgeleitete Klasse das Element überschrieben hat. Standardmäßig sind Methoden nicht virtuell. Wir können eine nicht virtuelle Methode nicht überschreiben.
Fahren wir mit den nächsten C # OOP-Interviewfragen fort
8. Wie vermeide ich NULL in C #?
Antworten:
Null ist kein Objekt. Wir können eine Klasse haben, aber eine Variable mit einem NULL-Wert bedeutet, dass sie nicht auf ein Objekt verweist. Möglicherweise stoßen wir auf einen Code, der viele bedingte Anweisungen enthält, mit denen überprüft wird, ob der Wert einer Variablen NULL ist. Lassen Sie uns eine statische Methode überprüfen:
öffentliche statische Zeichenfolge DisplayUpperString (Zeichenfolge s) (
string upper = string.Empty;
If( s == null ) (
upper = null;
)
else (
upper = s.ToUpper();
)
return upper;
)
Dieser Code ist in Ordnung und konvertiert eine bestimmte Zeichenfolge in Großbuchstaben.
Aus der OO-Perspektive sollten Sie jedoch ein Objekt konstruieren, das nichts darstellt, anstatt es für NULL auszuwerten.
public static String DisplayUpperString (PossibleString s) (
string upper = s.ToPossibleUpper ();
kehre nach oben zurück;
)
Jetzt ist die Funktion übersichtlicher, lesbarer und verwendet nicht länger die Prüfung auf einen NULL-Wert.
9. Was ist die Erweiterungsmethode in C # und wie werden sie verwendet?
Antworten:
Dies ist das häufig gestellte C # OOP-Interview, das in einem Interview gestellt wird. Eine Erweiterungsmethode ist eine spezielle statische Methode, die jedoch so aufgerufen wird, als wären sie Instanzmethoden des erweiterten Typs. Mit dieser Methode können Sie vorhandenen Typen Methoden hinzufügen, ohne einen neuen abgeleiteten Typ zu erstellen, den ursprünglichen Typ neu zu kompilieren oder auf andere Weise zu ändern. Erweiterungsmethoden sind nur dann gültig, wenn Sie den Namespace explizit mit einer using-Direktive in Ihren Quellcode importieren.
10. Kann dieses Schlüsselwort in einer statischen Methode verwendet werden?
Antworten:
Da das Schlüsselwort "this" einen Verweis auf die aktuelle Instanz einer Klasse zurückgibt, können wir dies nicht in einer statischen Methode verwenden. Statische Member sind ohne Instanz der Klasse vorhanden und rufen mit dem Namen der Klasse auf, nicht instanzweise. Wir können also sagen, dass dieses Schlüsselwort ein spezieller Typ einer Referenzvariablen ist, der implizit in jedem Konstruktor und in jeder nicht statischen Methode als erster Parameter der Typklasse definiert ist, in der es definiert ist.
Empfohlener Artikel
Dies war eine Anleitung zur Liste der Fragen und Antworten zu C # OOP-Vorstellungsgesprächen, damit der Kandidat diese Fragen zu C # OOP-Vorstellungsgesprächen leicht durchgreifen kann. Hier in diesem Beitrag haben wir uns mit den wichtigsten C # OOP-Interviewfragen befasst, die häufig in Interviews gestellt werden. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -
- Fragen im Vorstellungsgespräch bei Hadoop Admin
- 12 Amazing Spark Interview-Fragen
- 10 Wichtige Fragen zum Ab initio-Vorstellungsgespräch
- 25 Die wichtigsten Fragen zum Thema Informatik
- Was sind die Vorteile von C # und Js