Introduktion C # OOP Intervjufrågor och svar
C # är ett objektorienterat, funktionellt, generiskt och komponentorienterat programmeringsspråk. Det används för att bygga en mängd olika applikationer, det är särskilt starkt för att bygga Windows skrivbordsapplikationer och spel. Webbutveckling kan också göras effektivt med C # och det har blivit alltmer populärt för mobilutveckling. Så det är ett utmärkt val för alla programmerare som vill göra webb- och spelutveckling. Det är ett statiskt typspråk, så den skrivna källkoden kontrolleras noggrant innan den förvandlas till en applikation. Det är ett komplext språk att lära sig och behärska det kan ta en avsevärd tid. Det finns olika plattformsverktyg tillgängliga som tillåter applikationer skrivna i C # som kan användas via mobil och skrivbord.
Om du letar efter ett jobb som är relaterat till C # OOP, måste du förbereda dig för C # OOP intervjufrågor 2019. Även om varje intervju är annorlunda och omfattningen av ett jobb också är annorlunda, kan vi hjälpa dig med de bästa C # OOP-intervjufrågorna med svar, som hjälper dig att ta språnget och få framgång i din intervju.
Nedan är toppen C # OOP intervjufrågor som ställs ofta i en intervju dessa toppfrågor är indelade i två delar är följande:
Del 1 - C # OOP intervjufrågor (grundläggande)
Den första delen täcker grundläggande C # OOP-intervjufrågor och svar
1. Vad är skillnaden mellan gränssnitt och abstrakt klass?
Svar:
Någon skillnad anges nedan:
- En abstrakt klass kan ha icke-abstrakta metoder (konkreta metoder) medan alla metoder måste vara abstrakta vid gränssnitt.
- En abstrakt klass kan förklara eller använda alla variabler medan gränssnittet inte får göra det.
- I en abstrakt klass är alla datamedlemmar eller funktioner privata som standard medan alla i gränssnittet är offentliga, vi kan inte ändra dem manuellt.
- En abstrakt klass använder konstruktör medan vi i ett gränssnitt inte har någon typ av konstruktör.
- En klass kan implementera valfritt antal gränssnitt men en underklass kan högst bara använda en abstrakt klass.
2. Vad är delegaterna och dess användning?
Svar:
Ett delegerat objekt är en referenstypvariabel som används för att hålla referensen till en metod. Hänvisningen kan ändras vid körning som hålls av ett delegatens objekt. Ett delegatobjekt kan innehålla många funktionsreferenser som också kallas Invocation List som hänvisar funktioner i en sekvens FIFO, vi kan nya funktioner ref i denna lista under körning av en + = operatör och kan ta bort av - = operator.
Delegater används särskilt för att implementera evenemang och återuppringningsmetoder. Alla delegater härrör implicit från systemet. Delegat klass.
Låt oss gå vidare till nästa C # OOP-intervjufrågor
3. Vad är skillnaden mellan sen bindning och tidig bindning?
Svar:
I Compile time polymorphism eller Early Binding kommer vi att använda flera metoder med samma namn men en annan typ av parameter eller kanske antalet eller parametern på grund av detta kan vi utföra olika-olika uppgifter med samma metodnamn i samma klass som också är känd som metodöverbelastning.
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 polymorfism är också känd som sen bindning. Här måste metodnamnet och metodsignaturen (antal parametrar och parametertyp vara samma och kan ha en annan implementering). Metodöverskridande är ett exempel på dynamisk polymorfism.
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. Vad skulle hända om de ärvda gränssnitten har motstridiga metodnamn?
Svar:
Detta är de vanliga C # OOP-intervjufrågor som ställs i en intervju. om vi har motstridiga metoder i samma klass, kan vi inte implementera deras kropp självständigt i samma klass på grund av samma namn och samma signatur så vi måste använda gränssnittsnamnet före metodnamn för att ta bort denna metodförvirring.
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. På vilka sätt kan en metod överbelastas?
Svar:
Metodöverbelastning är ett annat namn för kompileringstid polymorfism, där vi kan skapa en metod med samma namn men med en annan signatur. Det görs vid sammanställningstiden och vi kan göra det på flera sätt men metodnamnet skulle förbli detsamma.
Ett antal parametrar kan vara olika.
Typ av parameter kan vara annorlunda.
Parameterordning kan vara annorlunda.
Exempel -
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 intervjufrågor (avancerat)
Den första delen täcker avancerade C # OOP-intervjufrågor och svar
6. Vad är en tillgänglighet modifierare och hur många finns det i C #?
Svar:
Tillgångsmodifierare är nyckelord som används för att ange den deklarerade tillgängligheten för en medlem eller en typ. I C # finns det 5 olika typer av åtkomstmodifierare.
Offentligt - Inga begränsningar för åtkomst till offentliga medlemmar.
Privat - begränsad åtkomst inom en klassdefinition, om ingen anges är detta standard.
Skyddad - åtkomst är begränsad till inom klassdefinition och alla klasser som ärver från klassen.
Internt - åtkomst är endast begränsat till de klasser som definieras av det aktuella projektet
Skyddade interna medlemmar kan nås var som helst i samma enhet och också tillgängliga genom att ärva den klassen, den kan endast vara tillgänglig utanför enheten i härledd klass.
7. Vad är en virtuell metod i C #?
Svar:
En virtuell metod är en metod som kan omdefinieras i härledda klasser. En virtuell metod har en implementering i en basklass såväl som härledd från klassen. Den används när metodens grundläggande funktionalitet är densamma men ibland behövs mer funktionalitet i den härledda klassen. En virtuell metod skapas i basklassen som kan åsidosättas i den härledda klassen. Vi skapar en virtuell metod i basklassen med hjälp av det virtuella nyckelordet och den metoden åsidosätts i den härledda klassen med det åsidosatta nyckelordet.
När en virtuell metod åberopas, kontrolleras objektets körningstyp för ett övervägande medlem. Den övervägande medlemmen i den mest härledda klassen kallas, vilket kan vara den ursprungliga medlemmen om ingen härledd klass har åsidosatt medlemmen. Som standard är metoder icke-virtuella. Vi kan inte åsidosätta en icke-virtuell metod.
Låt oss gå vidare till nästa C # OOP-intervjufrågor
8. Hur undviks NULL i C #?
Svar:
Null är inte ett objekt. Vi kan ha en klass, men en variabel med NULL-värde betyder att den inte pekar på något objekt. Vi kan komma över en kod som innehåller många villkorliga uttalanden som skulle kontrollera om värdet på en variabel är NULL. Låt oss kontrollera en statisk metod:
offentlig statisk sträng DisplayUpperString (strängar) (
string upper = string.Empty;
If( s == null ) (
upper = null;
)
else (
upper = s.ToUpper();
)
return upper;
)
Den här koden är bra och konvertera till en stor bokstav en given sträng.
Men ur ett OO-perspektiv kan du överväga att konstruera ett objekt som inte representerar något, snarare än att utvärdera det för NULL.
public static String DisplayUpperString (PossibleString s) (
string upper = s.ToPossibleUpper ();
tillbaka övre;
)
Nu är funktionen mindre rörig, mer läsbar och använder inte längre kontrollen för ett NULL-värde.
9. Vad är förlängningsmetoden i C # och hur använder man dem?
Svar:
Detta är de ofta ställda C # OOP-intervjufrågorna i en intervju. En förlängningsmetod är en speciell typ av statisk metod, men de kallas som om de var instansmetoder på den utökade typen. Med den här metoden kan du lägga till metoder till befintliga typer utan att skapa en ny härledd typ, omkompilera eller på annat sätt ändra den ursprungliga typen. Tilläggsmetoder räcker endast när du uttryckligen importerar namnområdet till din källkod med ett direktiv som använder.
10. Kan "detta" nyckelord användas inom en statisk metod?
Svar:
Eftersom “detta” nyckelord returnerar en referens till den aktuella instansen av en klass, så vi kan inte använda detta i en statisk metod. Och statiska medlemmar finns utan någon instans av klassen och ringer med klassens namn, inte med instans. Så vi kan säga att "detta" nyckelord är en speciell typ av referensvariabel som implicit definieras inom varje konstruktör och icke-statisk metod som en första parameter i den typsklassen där den definieras.
Rekommenderad artikel
Detta har varit en guide till Lista över C # OOP-intervjufrågor och svar så att kandidaten lätt kan slå ned dessa C # OOP-intervjuerfrågor. Här i det här inlägget har vi studerat de bästa C # OOP-intervjufrågorna som ofta ställs i intervjuer. Du kan också titta på följande artiklar för att lära dig mer -
- Hadoop Admin Interview Questions
- 12 fantastiska gnistrintervjufrågor
- 10 viktiga frågor om initiointervjuer
- 25 viktigaste intervjufrågor inom datavetenskap
- Vilka är fördelarna med C # och Js