Introduktion C # OOP Interview Spørgsmål og svar
C # er et objektorienteret, funktionelt, generisk og komponentorienteret programmeringssprog. Det bruges til at opbygge en række forskellige applikationer, det er specifikt stærkt til at opbygge Windows desktop applikationer og spil. Webudvikling kan også udføres effektivt med C #, og det er i stigende grad blevet populært for mobiludviklinger. Så det er et glimrende valg for enhver programmør, der ønsker at udvikle web- og spiludvikling. Det er et statisk-typisk sprog, så den skriftlige kildekode kontrolleres grundigt, før det bliver til et program. Det er et komplekst sprog at lære og mestre det kan tage en betydelig mængde tid. Der findes forskellige værktøjer på tværs af platforme, der tillader applikationer skrevet i C #, som kan bruges via mobil og desktop.
Hvis du leder efter et job, der er relateret til C # OOP, skal du forberede dig til C # OOP-interviewspørgsmål i 2019. Selvom hvert interview er anderledes, og omfanget af et job er også anderledes, kan vi hjælpe dig med de øverste C # OOP-interviewspørgsmål med svar, som vil hjælpe dig med at tage springet og få dig succes i dit interview.
Nedenfor er toppen C # OOP Interview Spørgsmål, der ofte stilles i et interview, disse topspørgsmål er opdelt i to dele er som følger:
Del 1 - C # OOP Interviewspørgsmål (grundlæggende)
Denne første del dækker grundlæggende C # OOP-interviewspørgsmål og svar
1. Hvad er forskellen mellem interface og abstrakt klasse?
Svar:
Nogle forskelle er anført nedenfor:
- En abstrakt klasse kan have ikke-abstrakte metoder (konkrete metoder), mens alle metoder i tilfælde af interface skal være abstrakte.
- En abstrakt klasse kan erklære eller bruge alle variabler, mens en grænseflade ikke har tilladelse til det.
- I en abstrakt klasse er alle datamedlemmer eller -funktioner som standard private, mens de i interface er alle offentlige, vi kan ikke ændre dem manuelt.
- En abstrakt klasse bruger konstruktør, mens vi i en grænseflade ikke har nogen form for konstruktør.
- En klasse kan implementere et hvilket som helst antal grænseflader, men en underklasse kan højst kun bruge en abstrakt klasse.
2. Hvad er delegerede og dens anvendelser?
Svar:
Et delegeret objekt er en variabel af referencetype, der bruges til at indeholde referencen til en metode. Henvisningen kan ændres ved kørselstidspunktet, som besiddes af et delegeret objekt. Et delegeret objekt kan indeholde mange funktionsreferencer, der også kaldes Invocation List, der henviser til funktioner i en FIFO-sekvens, vi kan nye funktioner ref i denne liste ved kørsel af en + = operator og kan fjerne by - = operator.
Delegater bruges især til implementering af begivenheder og tilbagekaldsmetoder. Alle delegerede stammer implicit fra systemet. Delegerede klasse.
Lad os gå videre til de næste C # OOP-interviewspørgsmål
3. Hvad er forskellen mellem senbinding og tidlig binding?
Svar:
I Compile time polymorphism eller Early Binding, vil vi bruge flere metoder med samme navn men en anden type parameter eller måske antallet eller parameteren på grund af dette kan vi udføre forskellige forskellige opgaver med samme metodenavn i den samme klasse, som også er kendt som metodeoverbelastning.
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);
)
)
Dynamisk / runtime-polymorfisme er også kendt som sen binding. Her skal metodenavnet og metodesignaturen (antal parametre og parametertype være den samme og have en anden implementering). Fremgangsmådeoverskridende er et eksempel på dynamisk polymorfisme.
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. Hvad ville der ske i tilfælde af, at de arvelige grænseflader har modstridende metodenavne?
Svar:
Dette er de almindelige C # OOP-interviewspørgsmål, der stilles i et interview. hvis vi har modstridende metoder i en samme klasse, kan vi ikke implementere deres krop uafhængigt af den samme klasse på grund af det samme navn og samme underskrift, så vi skal bruge interface-navnet før metodenavn for at fjerne denne metodeforvirring.
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. Hvad er de forskellige måder en metode kan overbelastes på?
Svar:
Metodeoverbelastning er et andet navn til kompileringstid polymorfisme, hvor vi kan oprette en metode med samme navn, men med en anden signatur. Det gøres på kompileringstidspunktet, og vi kan gøre det på flere måder, men metodenavn ville forblive det samme.
Et antal parametre kan være forskellige.
Parametertypen kan være forskellig.
Parameterordenen kan være anderledes.
Eksempel -
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;
)
Del 2 - C # OOP Interviewspørgsmål (avanceret)
Denne første del dækker avancerede C # OOP-interviewspørgsmål og svar
6. Hvad er en tilgængelighedsmodifikator, og hvor mange er der i C #?
Svar:
Adgangsmodifikatorer er nøgleord, der bruges til at specificere et erklæret tilgængelighed for et medlem eller en type. I C # er der 5 forskellige typer Access Modifiers.
Offentligt - Ingen begrænsninger for adgang til offentlige medlemmer.
Privat - begrænset adgang inden for en klassedefinition, hvis ingen er specificeret, er dette standard.
Beskyttet - adgang er begrænset til inden for klassedefinition og enhver klasse, der arver fra klassen.
Intern - adgang er udelukkende begrænset til de klasser, der er defineret af det aktuelle projekt
Beskyttet internt medlem kan fås overalt hvor som helst i den samme samling og også tilgængelig ved at arve den klasse, det kan kun være tilgængeligt uden for samlingen i afledt klasse.
7. Hvad er en virtuel metode i C #?
Svar:
En virtuel metode er en metode, der kan omdefineres i afledte klasser. En virtuel metode har en implementering i en baseklasse såvel som afledt fra klassen. Det bruges, når en metodes grundlæggende funktionalitet er den samme, men nogle gange er der behov for mere funktionalitet i den afledte klasse. Der oprettes en virtuel metode i baseklassen, der kan tilsidesættes i den afledte klasse. Vi opretter en virtuel metode i baseklassen ved hjælp af det virtuelle nøgleord, og denne metode tilsidesættes i den afledte klasse ved hjælp af det tilsidesatte søgeord.
Når en virtuel metode påberåbes, kontrolleres objektets køretidstype for et overordnet medlem. Det overordnede medlem i den mest afledte klasse kaldes, hvilket kan være det oprindelige medlem, hvis ingen afledt klasse har tilsidesat medlemmet. Som standard er metoder ikke-virtuelle. Vi kan ikke tilsidesætte en ikke-virtuel metode.
Lad os gå videre til de næste C # OOP-interviewspørgsmål
8. Hvordan undgår man NULL i C #?
Svar:
Nul er ikke et objekt. Vi kan have en klasse, men en variabel med en NULL-værdi betyder, at den ikke peger på noget objekt. Vi kan måske støde på et stykke kode, der indeholder mange betingede udsagn, der vil kontrollere, om værdien af en variabel er NULL. Lad os tjekke en statisk metode:
offentlig statisk streng DisplayUpperString (streng) (
string upper = string.Empty;
If( s == null ) (
upper = null;
)
else (
upper = s.ToUpper();
)
return upper;
)
Denne kode er fin, og konverter en stor streng til store bogstaver.
Men set fra et OO-perspektiv, skal du overveje at konstruere et objekt, der ikke repræsenterer noget, snarere end at evaluere det for NULL.
public static String DisplayUpperString (PossibleString s) (
streng øvre = s.ToPossibleUpper ();
tilbage øvre;
)
Nu er funktionen mindre rodet, mere læsbar og bruger ikke længere kontrollen for en NULL-værdi.
9. Hvad er udvidelsesmetoden i C #, og hvordan bruges de?
Svar:
Dette er de ofte stillede C # OOP-interviewspørgsmål, der stilles i et interview. En udvidelsesmetode er en særlig form for statisk metode, men de kaldes som om de var forekomstmetoder på den udvidede type. Denne metode giver dig mulighed for at føje metoder til eksisterende typer uden at oprette en ny afledt type, genkompilere eller på anden måde ændre den originale type. Udvidelsesmetoder er kun inden for rækkevidde, når du eksplicit importerer navneområdet til din kildekode med et brugende direktiv.
10. Kan “dette” nøgleord bruges inden for en statisk metode?
Svar:
Da "dette" nøgleord returnerer en henvisning til den aktuelle forekomst af en klasse, så vi kan ikke bruge dette i en statisk metode. Og statiske medlemmer findes uden nogen forekomst af klassen og ringer op med navnet på klassen, ikke ved forekomster. Så vi kan sige, at "dette" nøgleord er en speciel type referencevariabel, der implicit er defineret i hver konstruktør og ikke-statisk metode som en første parameter i den type klasse, hvori den er defineret.
Anbefalet artikel
Dette har været en guide til Liste over C # OOP-interviewspørgsmål og-svar, så kandidaten let kan nedbryde disse C # OOP-interviewspørgsmål. Her i dette indlæg har vi undersøgt top C # OOP-interviewspørgsmål, som ofte stilles i interviews. Du kan også se på de følgende artikler for at lære mere -
- Hadoop Admin Interview spørgsmål
- 12 fantastiske Spark-interviewspørgsmål
- 10 Vigtige spørgsmål om ab initio-interview
- 25 vigtigste spørgsmål om datalogi
- Hvad er fordelene ved C # og Js