Innledning C # OOP Intervju Spørsmål og svar
C # er et objektorientert, funksjonelt, generisk og komponentorientert programmeringsspråk. Det brukes til å bygge en rekke applikasjoner, det er spesielt sterkt når det gjelder å bygge Windows-desktop applikasjoner og spill. Nettutvikling kan også gjøres effektivt med C #, og det har i økende grad blitt populært for mobilutvikling. Så det er et utmerket valg for enhver programmerer som ønsker å utvikle web- og spillutvikling. Det er et statisk skrevet språk, så skrevet kildekode blir grundig sjekket før det blir til et program. Det er et sammensatt språk å lære og mestre det kan ta betydelig tid. Det er forskjellige plattformverktøy tilgjengelig som tillater applikasjoner skrevet i C # som kan brukes over mobil og stasjonær.
Hvis du leter etter en jobb som er relatert til C # OOP, må du forberede deg til C # OOP intervjuspørsmål i 2019. Selv om hvert intervju er forskjellig og omfanget av en jobb også er forskjellig, kan vi hjelpe deg med topp C # OOP-intervjuspørsmål med svar, som vil hjelpe deg å ta spranget og få deg suksess i intervjuet.
Nedenfor er toppen av C # OOP-intervjuet spørsmål som blir stilt ofte i et intervju. Disse toppspørsmålene er delt inn i to deler er som følger:
Del 1 - C # OOP intervjuspørsmål (grunnleggende)
Denne første delen dekker grunnleggende C # OOP-intervjuspørsmål og svar
1. Hva er forskjellen mellom grensesnitt og abstrakt klasse?
Svar:
Noen forskjeller er listet nedenfor:
- En abstrakt klasse kan ha ikke-abstrakte metoder (konkrete metoder), mens i tilfelle grensesnitt må alle metodene være abstrakte.
- En abstrakt klasse kan erklære eller bruke noen variabler mens et grensesnitt ikke har lov til det.
- I en abstrakt klasse er alle datamedlemmer eller funksjoner private som standard, mens i grensesnittet er alle offentlige. Vi kan ikke endre dem manuelt.
- En abstrakt klasse bruker konstruktør mens vi ikke har noen form for konstruktør i et grensesnitt.
- En klasse kan implementere et hvilket som helst antall grensesnitt, men en underklasse kan høyst bruke bare en abstrakt klasse.
2. Hva er delegatene og bruken av det?
Svar:
Et delegert objekt er en referansetypevariabel som bruker for å holde referansen til en metode. Henvisningen kan endres ved kjøretid som holdes av et objekt fra en delegat. Et delegatobjekt kan inneholde mange funksjoner referanse som også er kjent som Invocation List som refererer funksjoner i en sekvens FIFO, vi kan nye funksjoner ref i denne listen ved kjøring av en + = operator og kan fjerne av - = operator.
Delegater brukes spesielt til implementering av arrangementer og tilbakeringingsmetoder. Alle delegater er implisitt avledet fra systemet. Delegert klasse.
La oss gå videre til de neste C # OOP intervjuspørsmål
3. Hva er forskjellen mellom senbinding og tidlig binding?
Svar:
I Compile time polymorphism eller Early Binding, vil vi bruke flere metoder med samme navn, men en annen type parameter eller kanskje nummeret eller parameteren på grunn av dette kan vi utføre forskjellige forskjellige oppgaver med samme metodenavn i samme klasse som også er kjent som Method overloading.
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å kjent som sen binding. Her må metodenavnet og metodesignaturen (antall parametere og parametertype være den samme og ha en annen implementering). Overordnet metode 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. Hva ville skje i tilfelle hvis de arvelige grensesnittene har motstridende metodenavn?
Svar:
Dette er de vanlige C # OOP-intervjuspørsmålene som stilles i et intervju. hvis vi har motstridende metoder i samme klasse, kan vi ikke implementere kroppen deres uavhengig av samme klasse på grunn av samme navn og samme signatur, så vi må bruke grensesnittnavn før metodenavn for å fjerne denne metodeforvirringen.
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. Hva er de forskjellige måtene en metode kan overbelastes?
Svar:
Metodeoverbelastning er et annet navn for kompileringstid polymorfisme, der vi kan lage en metode med samme navn, men med en annen signatur. Det gjøres på kompileringstidspunktet, og vi kan gjøre det på flere måter, men metodenavnet vil forbli det samme.
En rekke parametere kan være forskjellige.
Type parameter kan være forskjellig.
Rekkefølgen på parameteren kan være forskjellig.
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-intervjuspørsmål (avansert)
Denne første delen dekker avanserte C # OOP-intervjuspørsmål og svar
6. Hva er en tilgjengelighetsmodifiserer og hvor mange er det i C #?
Svar:
Tilgangsmodifiser er nøkkelord som brukes til å spesifisere den erklærte tilgjengeligheten til et medlem eller en type. I C # er det 5 flere typer Access Modifiers.
Offentlig - Ingen begrensninger for tilgang til offentlige medlemmer.
Privat - begrenset tilgang innenfor en klassedefinisjon, hvis ingen er spesifisert, er dette standard.
Beskyttet - tilgang er begrenset til innenfor klassedefinisjon og enhver klasse som arver fra klassen.
Intern - tilgangen er utelukkende begrenset til klassene definert av det nåværende prosjektet
Beskyttet internt medlem kan nås hvor som helst i den samme forsamlingen og også tilgjengelig ved å arve den klassen, det kan være tilgjengelig utenfor sammenstillingen i avledet klasse.
7. Hva er en virtuell metode i C #?
Svar:
En virtuell metode er en metode som kan omdefineres i avledede klasser. En virtuell metode har en implementering i en baseklasse så vel som avledet fra klassen. Den brukes når metodens grunnleggende funksjonalitet er den samme, men noen ganger er det behov for mer funksjonalitet i den avledede klassen. Det opprettes en virtuell metode i baseklassen som kan overstyres i den avledede klassen. Vi lager en virtuell metode i baseklassen ved å bruke det virtuelle nøkkelordet, og den metoden overstyres i den avledede klassen ved å bruke overstyringsordet.
Når en virtuell metode blir påkalt, sjekkes kjøretidstypen for objektet for et overstyrende medlem. Det overordnede medlemmet i den mest avledede klassen kalles, noe som kan være det opprinnelige medlemmet hvis ingen avledet klasse har overstyrt medlemmet. Som standard er metodene ikke-virtuelle. Vi kan ikke overstyre en ikke-virtuell metode.
La oss gå videre til de neste C # OOP intervjuspørsmål
8. Hvordan unngå NULL i C #?
Svar:
Null er ikke et objekt. Vi kan ha en klasse, men en variabel med en NULL-verdi betyr at den ikke peker på noe objekt. Vi kan komme over et stykke kode som inneholder mange betingede utsagn som vil sjekke om verdien av en variabel er NULL. La oss sjekke en statisk metode:
offentlig statisk streng DisplayUpperString (streng) (
string upper = string.Empty;
If( s == null ) (
upper = null;
)
else (
upper = s.ToUpper();
)
return upper;
)
Denne koden er fin, og konvertere til en stor bokstav en gitt streng.
Men sett fra et OO-perspektiv, vurder å konstruere et objekt som ikke representerer noe, i stedet for å evaluere det for NULL.
public static String DisplayUpperString (PossibleString s) (
streng øvre = s.ToPossibleUpper ();
retur øvre;
)
Nå er funksjonen mindre rotete, mer lesbar og bruker ikke lenger sjekken for en NULL-verdi.
9. Hva er utvidelsesmetoden i C #, og hvordan bruker du dem?
Svar:
Dette er de ofte stilte C # OOP-intervjuspørsmålene som stilles i et intervju. En utvidelsesmetode er en spesiell type statisk metode, men de kalles som om de var forekomstmetoder på den utvidede typen. Denne metoden lar deg legge til metoder til eksisterende typer uten å opprette en ny avledet type, rekompilere eller på annen måte endre den opprinnelige typen. Utvidelsesmetoder er bare i omfang når du eksplisitt importerer navneområdet til kildekoden med et direktiv.
10. Kan “dette” nøkkelordet brukes på en statisk metode?
Svar:
Siden "dette" nøkkelordet returnerer en referanse til gjeldende forekomst av en klasse, så vi kan ikke bruke dette på en statisk metode. Og statiske medlemmer eksisterer uten noen forekomst av klassen og ringer med navnet på klassen, ikke for eksempel. Så vi kan si at “dette” nøkkelordet er en spesiell type referansevariabel som implisitt er definert i hver konstruktør og ikke-statisk metode som en første parameter i typen klasse der den er definert.
Anbefalt artikkel
Dette har vært en guide til Liste over C # OOP intervjuspørsmål og svar, slik at kandidaten enkelt kan slå sammen disse C # OOP intervjuspørsmål. Her i dette innlegget har vi studert om topp C # OOP intervjuspørsmål som ofte blir stilt i intervjuer. Du kan også se på følgende artikler for å lære mer -
- Hadoop Admin Interview Questions
- 12 fantastiske Spark-intervjuspørsmål
- 10 viktige spørsmål om ab intervju
- 25 viktigste spørsmål om datavitenskap
- Hva er fordelene med C # og Js