10 najčastejších otázok a odpovedí na rozhovor C # OOP (aktualizované pre rok 2019)

Obsah:

Anonim

Úvod C # OOP Rozhovor Otázky a odpovede

C # je objektovo orientovaný, funkčný, generický a komponentovo orientovaný programovací jazyk. Používa sa na vytváranie rôznych aplikácií, je osobitne silný pri vytváraní desktopových aplikácií a hier pre Windows. Vývoj webových aplikácií sa dá efektívne vykonávať aj pomocou C # a čoraz viac sa stáva obľúbeným pre vývoj mobilných zariadení. Je teda vynikajúcou voľbou pre každého programátora, ktorý chce robiť vývoj webových a hier. Je to staticky napísaný jazyk, takže napísaný zdrojový kód sa pred premenou na aplikáciu dôkladne skontroluje. Je to zložitý jazyk, ktorý sa učiť a osvojiť si môže vyžadovať značné množstvo času. K dispozícii sú rôzne nástroje na viacerých platformách, ktoré umožňujú aplikácie napísané v jazyku C #, ktoré je možné používať na mobilných a stolných počítačoch.

Ak hľadáte prácu, ktorá súvisí s C # OOP, musíte sa pripraviť na 2019 C # OOP rozhovory. Aj keď je každý rozhovor iný a rozsah práce je tiež odlišný, môžeme vám pomôcť s najlepšími otázkami z rozhovoru C # OOP Interview s odpoveďami, ktoré vám pomôžu skákať a dosiahnuť úspech v pohovore.

Nižšie sú uvedené najčastejšie otázky týkajúce sa rozhovoru C # OOP v roku 2019, ktoré sa často kladú počas rozhovoru. Tieto hlavné otázky sú rozdelené do dvoch častí:

1. časť - Otázky na pohovor C # OOP (základné)

Táto prvá časť obsahuje základné otázky a odpovede týkajúce sa rozhovoru C # OOP

1. Aký je rozdiel medzi rozhraním a triedou abstraktov?

odpoveď:
Niektoré rozdiely sú uvedené nižšie:

  • Abstraktná trieda môže mať ne abstraktné metódy (konkrétne metódy), zatiaľ čo v prípade rozhrania musia byť všetky metódy abstraktné.
  • Abstraktná trieda môže deklarovať alebo používať ľubovoľné premenné, zatiaľ čo to rozhranie nemôže robiť.
  • V abstraktnej triede sú všetky dátové členy alebo funkcie v predvolenom nastavení súkromné, zatiaľ čo v rozhraní sú všetky verejné, nemôžeme ich zmeniť ručne.
  • Abstraktná trieda používa konštruktor, zatiaľ čo v rozhraní nemáme žiaden typ konštruktora.
  • Trieda môže implementovať ľubovoľný počet rozhraní, ale podtrieda môže použiť iba jednu abstraktnú triedu.

2. Čo sú to delegáti a ich použitie?

odpoveď:
Delegovaný objekt je premenná typu odkazu, ktorá slúži na udržanie odkazu na metódu. Referenciu možno zmeniť za behu, ktorý je držaný predmetom delegáta. Delegovaný objekt môže obsahovať mnoho odkazov na funkcie, ktoré sú známe aj ako zoznamy odkazov, ktoré odkazujú na funkcie v sekvencii FIFO, môžeme nové funkcie odkazovať v tomto zozname za behu operátorom + = a môžu byť odstránené operátorom = =.
Delegáti sa používajú najmä na realizáciu udalostí a metódy spätného volania. Všetci delegáti sú implicitne odvodení zo systému. Delegujte triedu.

Prejdime k ďalším otázkam C # OOP Interview

3. Aký je rozdiel medzi oneskorenou a skorou väzbou?

odpoveď:
V polymorfizme kompilácie času alebo skorej väzbe použijeme viac metód s rovnakým názvom, ale s iným typom parametra alebo možno s číslom alebo parametrom, z tohto dôvodu môžeme vykonávať rôzne úlohy s rovnakým názvom metódy v rovnakej triede, čo je tiež známy ako metóda preťaženia.

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

Dynamický / runtime polymorfizmus je známy aj ako oneskorená väzba. Tu musí byť názov metódy a podpis metódy (počet parametrov a typ parametrov musia byť rovnaké a môžu mať inú implementáciu). Prekrývanie metód je príkladom dynamického polymorfizmu.

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. Čo by sa stalo, ak by zdedené rozhrania obsahovali protichodné názvy metód?

odpoveď:
Toto sú bežné otázky týkajúce sa rozhovorov C # OOP, ktoré boli položené počas rozhovoru. Ak máme konfliktné metódy v rovnakej triede, nemôžeme implementovať ich telo nezávisle do rovnakej triedy z dôvodu rovnakého mena a rovnakého podpisu, takže na odstránenie tejto zámeny metódy musíme použiť názov rozhrania pred názvom metódy.

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. Aké sú rôzne spôsoby preťaženia metódy?

odpoveď:
Preťaženie metód je iný názov pre kompilovaný polymorfizmus, kde môžeme vytvoriť metódu s rovnakým názvom, ale s odlišným podpisom. Robí sa to v čase kompilácie a môžeme to urobiť niekoľkými spôsobmi, ale názov metódy by zostal rovnaký.

Niekoľko parametrov sa môže líšiť.
Typ parametra sa môže líšiť.
Poradie parametrov sa môže líšiť.

Príklad -

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. časť - Otázky na pohovor C # OOP (rozšírené)

Táto prvá časť sa venuje pokročilým otázkam a odpovediam na rozhovor C # OOP

6. Čo je modifikátor prístupnosti a koľko je v C #?

odpoveď:
Modifikátory prístupu sú kľúčové slová, ktoré sa používajú na špecifikovanie deklarovanej prístupnosti člena alebo typu. V C # je 5 niekoľkých typov modifikátorov prístupu.

Verejné - Žiadne obmedzenia prístupu verejnosti.
Súkromný - obmedzený prístup v rámci definície triedy, ak nie je uvedený, potom je to predvolená hodnota.
Chránený - prístup je obmedzený na definíciu triedy a na akúkoľvek triedu, ktorá dedí po triede.
Interný prístup je obmedzený výlučne na triedy definované súčasným projektom
Chránený interný člen je prístupný kdekoľvek v tej istej zostave a tiež prístupný zdedením tejto triedy, môže byť prístupný mimo zostavy iba v odvodenej triede.

7. Čo je virtuálna metóda v C #?

odpoveď:
Virtuálna metóda je metóda, ktorú je možné opätovne definovať v odvodených triedach. Virtuálna metóda má implementáciu v základnej triede a je odvodená od triedy. Používa sa, keď je základná funkčnosť metódy rovnaká, ale niekedy je v odvodenej triede potrebné viac funkcií. Virtuálna metóda je vytvorená v základnej triede, ktorú je možné v odvodenej triede prepísať. Virtuálnu metódu vytvárame v základnej triede pomocou virtuálneho kľúčového slova a táto metóda je v odvodenej triede prepísaná pomocou kľúčového slova override.
Keď sa vyvolá virtuálna metóda, skontroluje sa typ run-time objektu na prevažujúci člen. Zavolá sa prvoradý člen v najodvodenejšej triede, ktorý môže byť pôvodným členom, ak ho nezískala žiadna odvodená trieda. V predvolenom nastavení nie sú metódy virtuálne. Nemôžeme prepísať spôsob, ktorý nie je virtuálny.

Prejdime k ďalším otázkam C # OOP Interview

8. Ako sa vyhnúť NULL v C #?

odpoveď:
Null nie je objekt. Môžeme mať triedu, ale premenná s hodnotou NULL znamená, že neukazuje na žiadny objekt. Mohli by sme naraziť na kus kódu, ktorý obsahuje veľa podmienených príkazov, ktoré by skontrolovali, či je hodnota premennej NULL. Pozrime sa na statickú metódu:

verejný statický reťazec DisplayUpperString (reťazce) (

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

Tento kód je v poriadku a daný reťazec skonvertuje na veľké písmená.
Z pohľadu OO však zvážte vytvorenie objektu, ktorý nič nepredstavuje, skôr než ho zhodnoťte na NULL.

public static String DisplayUpperString (MožsibleString s) (
string upper = s.ToPossibleUpper ();
horná časť;
)

Teraz je funkcia menej preplnená, čitateľnejšia a už nepoužíva kontrolu na hodnotu NULL.

9. Aká je metóda rozšírenia v jazyku C # a ako ich používať?

odpoveď:
Toto sú najčastejšie kladené otázky C # OOP Interview položené počas rozhovoru. Metóda rozšírenia je špeciálny druh statickej metódy, volajú sa však, akoby išlo o metódy inštancie rozšíreného typu. Táto metóda umožňuje pridávať metódy k existujúcim typom bez toho, aby sa vytvoril nový odvodený typ, prekompiloval sa alebo inak upravoval pôvodný typ. Metódy rozšírenia sú v rozsahu, keď explicitne importujete priestor názvov do svojho zdrojového kódu pomocou direktívy using.

10. Môže sa „toto“ kľúčové slovo použiť v rámci statickej metódy?

odpoveď:
Pretože kľúčové slovo „toto“ vracia odkaz na aktuálnu inštanciu triedy, nemôžeme to použiť v rámci statickej metódy. A statickí členovia existujú bez akejkoľvek inštancie triedy a volajú s názvom triedy, nie podľa inštancie. Môžeme teda povedať, že „toto“ kľúčové slovo je špeciálny typ referenčnej premennej, ktorá je implicitne definovaná v každej konštruktorovej a nestatickej metóde ako prvý parameter triedy typu, v ktorej je definovaná.

Odporúčaný článok

Toto bol sprievodca zoznamom otázok a odpovedí na otázky týkajúce sa rozhovorov C # OOP, aby mohol uchádzač tieto zákroky na pohovore C # OOP ľahko nájsť. Tu v tomto príspevku sme študovali najčastejšie otázky týkajúce sa rozhovorov C # OOP, ktoré sa často kladú pri rozhovoroch. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Hadoop Admin Interview Otázky
  2. 12 úžasných otázok týkajúcich sa rozhovorov o iskrách
  3. 10 dôležitých otázok rozhovoru Ab initio
  4. 25 najdôležitejších otázok týkajúcich sa počítačových vied
  5. Aké sú výhody C # a Js