A 10 legnépszerűbb C # OOP interjúkérdés és -válasz (Frissítve 2019-re)

Tartalomjegyzék:

Anonim

Bevezetés C # OOP interjúkérdések és válaszok

A C # objektum-orientált, funkcionális, általános és komponens-orientált programozási nyelv. Különféle alkalmazások készítésére használják, kifejezetten erős a Windows asztali alkalmazások és játékok készítéséhez. A webfejlesztés hatékonyan végezhető a C # segítségével is, és egyre népszerűbbé válik a mobil fejlesztések területén. Ez tehát kiváló választás minden programozó számára, aki web- és játékfejlesztést kíván végezni. Ez statikusan tipizált nyelv, tehát az írásbeli forráskódot alaposan ellenőrizni kell, mielőtt alkalmazásrá alakul. Bonyolult nyelvtanulás, és elsajátítása jelentős időt vehet igénybe. Különböző platformokon kívüli eszközök állnak rendelkezésre, amelyek lehetővé teszik a C # -re írt alkalmazásokat, amelyeket mobilon és asztalon is lehet használni.

Ha olyan munkát keres, amely a C # OOP-hoz kapcsolódik, fel kell készülnie a 2019-es C # OOP interjúkérdésekre. Bár minden interjú különbözik, és a munka mértéke szintén különbözik, segíthetünk neked a legfontosabb C # OOP interjúkérdésekkel, válaszokkal, amelyek segítenek abban, hogy megtegye az ugrást, és sikeres legyen az interjúban.

Az alábbiakban látható a 2019 C # OOP interjú kérdése, amelyet gyakran kérdeznek egy interjúban. Ezek a legfontosabb kérdések két részre oszthatók:

1. rész - C # OOP interjúkérdések (alapvető)

Ez az első rész az alapvető C # OOP interjúkérdéseket és válaszokat tartalmazza

1. Mi a különbség az interfész és az absztrakt osztály között?

Válasz:
Néhány különbséget az alábbiakban felsorolunk:

  • Egy absztrakt osztálynak lehetnek nem absztrakt módszerei (konkrét módszerek), míg interfész esetén az összes módszernek absztraktnak kell lennie.
  • Egy absztrakt osztály deklarálhat vagy felhasználhat bármilyen változót, miközben az interfész nem teheti meg.
  • Absztrakt osztályban az összes adat tag vagy funkció alapértelmezés szerint privát, míg az interfészben mindenki nyilvános, ezeket nem tudjuk manuálisan megváltoztatni.
  • Egy absztrakt osztályú konstruktor használ, míg egy felületen nincs semmilyen konstruktorunk.
  • Egy osztály tetszőleges számú felületet képes megvalósítani, de az alosztály legfeljebb egy absztrakt osztályt használhat.

2. Melyek a küldöttek és azok felhasználása?

Válasz:
A delegált objektum egy referencia-típusú változó, amelyet egy módszer hivatkozásának megtartására használnak. A referencia megváltoztatható futási időben, amelyet egy megbízott tárgya tart. Egy átruházott objektum számos függvény referenciát tárolhat, amelyet más néven Invocation List-nak hívunk, amely a FIFO sorrendben hivatkozik funkciókra. Ebben a listában új funkciókat ref = + operátor futtathatunk, és - = operátor távolíthatunk el.
A küldöttet különösen alkalmazzák események és visszahívási módszerek végrehajtására. Minden küldött hallgatólagosan a rendszerből származik. Delegált osztály.

Folytassuk a következő C # OOP interjúkérdésekkel

3. Mi a különbség a késői és a korai kötés között?

Válasz:
Az Időbeli polimorfizmus vagy a Korai kötés során több módszert fogunk használni, azonos névvel, de eltérő típusú paraméterrel, vagy talán a számmal vagy paraméterrel, ezért különféle feladatokat hajthatunk végre ugyanazon módszernévvel ugyanabban az osztályban, amely szintén a módszer túlterhelése.

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);
)
)

A dinamikus / futásidejű polimorfizmust késői kötésnek is nevezik. Itt a metódus neve és a metódus aláírása (a paraméterek számának és a paraméter típusának azonosnak kell lennie, és eltérő megvalósítású lehet). A módszer felülbírálása a dinamikus polimorfizmus egyik példája.

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. Mi történne, ha az örökölt interfészek egymásnak ellentmondó módnevekkel rendelkeznek?

Válasz:
Ez az egy interjúban feltett gyakori C # OOP interjúkérdések. ha ugyanabban az osztályban egymással ellentmondó módszerek vannak, akkor nem tudjuk testüket önállóan végrehajtani ugyanabban az osztályban ugyanannak a névnek és aláírásnak a miatt, ezért a metódus neve előtt interfésznevet kell használnunk a módszer zavarának kiküszöbölésére.

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. Milyen módszerekkel lehet egy módszert túlterhelni?

Válasz:
A módszer túlterhelése egy másik név a fordítási idõbeli polimorfizmus számára, ahol létrehozhatunk egy azonos nevû, de eltérõ aláírású módszert. Ez fordítási időben történik, és többféle módon is megtehetjük, de a módszer neve változatlan marad.

Számos paraméter különbözhet.
A paraméter típusa eltérő lehet.
A paraméter sorrendje eltérő lehet.

Példa -

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;
)

2. rész - C # OOP interjúkérdések (haladó)

Ez az első rész a fejlett C # OOP interjúkérdéseket és válaszokat tartalmazza

6. Mi az akadálymentesség-módosító és hány létezik a C # -ben?

Válasz:
A hozzáférés-módosítók olyan kulcsszavak, amelyek segítségével meghatározható egy tag vagy típus deklarált hozzáférhetősége. A C # -ben 5 különféle típusú hozzáférés-módosító létezik.

Nyilvános - Nincs korlátozás a nyilvános tagokhoz való hozzáférésre.
Privát - korlátozott hozzáférés az osztálydefiníción belül, ha nincs megadva, akkor ez az alapértelmezett.
Védett - a hozzáférés az osztálydefiníción belül és minden olyan osztálynál korlátozódik, amely az osztálytól örököl.
A belső hozzáférés kizárólag a jelenlegi projekt által meghatározott osztályokra korlátozódik
A védett belső tag bárhonnan hozzáférhető ugyanabban az egységben, és az osztály öröklésével is elérhető, csak a származtatott osztályú egységnél érhető el.

7. Mi a virtuális módszer a C # -ben?

Válasz:
A virtuális módszer olyan módszer, amely újradefiniálható származtatott osztályokban. A virtuális módszernek megvalósítása van egy alaposztályban, és az osztályból származik. Akkor használják, amikor a módszer alapvető funkcionalitása megegyezik, de néha több funkcionalitásra van szükség a származtatott osztályban. Az alaposztályban létrejön egy virtuális módszer, amely felülbírálható a származtatott osztályban. Az alaposztályban létrehozunk egy virtuális módszert a virtuális kulcsszó használatával, és ezt a módszert felülbíráljuk a származtatott osztályban a felülbíráló kulcsszó használatával.
Virtuális módszer meghívásakor az objektum futási idejének típusát ellenőrzik felülbíráló tag szempontjából. A legeredményesebb osztály elsőbbségi tagját nevezzük, amely lehet az eredeti tag, ha egyetlen származtatott osztály sem felülbírálta a tagot. Alapértelmezés szerint a módszerek nem virtuálisak. Nem hagyhatjuk felül a nem virtuális módszert.

Folytassuk a következő C # OOP interjúkérdésekkel

8. Hogyan lehet elkerülni a NULL-ot a C # -ben?

Válasz:
A Null nem objektum. Lehet, hogy egy osztályunk, de egy NULL értékű változó azt jelenti, hogy nem mutat semmilyen objektumot. Találhatunk egy olyan kóddarabot, amely számos feltételes kijelentést tartalmaz, amely ellenőrizni fogja, hogy a változó értéke NULL. Vizsgáljuk meg egy statikus módszert:

nyilvános statikus karakterlánc DisplayUpperString (karakterlánc) (

string upper = string.Empty;
If( s == null ) (
upper = null;
)
else (
upper = s.ToUpper();
)
return upper;
)

Ez a kód rendben van, és konvertáljon egy adott karakterláncot nagybetűkké.
OO szempontból azonban fontolja meg egy objektum felépítését, amely nem képvisel semmit, mint a NULL értéket.

nyilvános statikus karakterlánc DisplayUpperString (PossibleString s) (
húr felső = s.ToPossibleUpper ();
visszatérő felső;
)

Most a funkció kevésbé rendetlen, olvashatóbb, és már nem használja a NULL érték ellenőrzését.

9. Mi a C # kiterjesztési módszere és hogyan lehet ezeket használni?

Válasz:
Ez az interjú során gyakran feltett C # OOP interjúkérdések. A kiterjesztés módszer egy speciális statikus módszer, de úgy hívják, mintha kiterjesztett típusnál példány módszer lenne. Ez a módszer lehetővé teszi metódusok hozzáadását a létező típusokhoz anélkül, hogy új származtatott típust hozna létre, újratelepítené vagy más módon módosítaná az eredeti típust. A kiterjesztési módszerek csak akkor terjednek ki, ha egy névtérrel kifejezetten importálja a forráskódot egy használatos irányelvvel.

10. Használható-e ez a kulcsszó statikus módszerben?

Válasz:
Mivel az „ez” kulcsszó hivatkozást ad vissza az osztály jelenlegi példányára, ezért ezt statikus módszerben nem használhatjuk. És a statikus tagok léteznek az osztály bármely példánya nélkül, és az osztály nevével hívják, nem pedig példányként. Tehát azt mondhatjuk, hogy az „ez” kulcsszó egy speciális típusú referenciaváltozó, amelyet implicit módon határoznak meg az egyes konstruktorokon és a nem statikus módszernél, mint a típusosztály első paramétere, amelyben meghatározzák.

Ajánlott cikk

Ez egy útmutató a C # OOP interjúkérdések és válaszok listájához, így a jelölt könnyen meg tudja oldani ezeket a C # OOP interjúkérdéseket. Itt, ebben a bejegyzésben megvizsgáltuk a legfontosabb C # OOP interjúkérdéseket, amelyeket gyakran kérdeznek az interjúkban. A következő cikkeket is megnézheti további információkért -

  1. Hadoop rendszergazdai interjúkérdések
  2. 12 Csodálatos Spark interjú kérdés
  3. 10 fontos ab initio interjúkérdés
  4. 25 A legfontosabb számítástechnikai interjúkérdések
  5. Mik a C # és J előnyei?