Top 10 C # OOP intervju pitanja i odgovori (Ažurirano za 2019.)

Sadržaj:

Anonim

Uvod C # OOP Intervju pitanja i odgovori

C # je objektno-funkcionalni, funkcionalni, generički i komponentni programski jezik. Koristi se za izgradnju različitih aplikacija, posebno je snažan u izradi Windows stolnih aplikacija i igara. Web razvoj se također može učinkovito obaviti s C # i on postaje sve popularniji za razvoj mobilnih uređaja. Dakle, to je odličan izbor za bilo kojeg programera koji se želi baviti razvojem weba i igara. To je jezik statički tip pa se pisani izvorni kod temeljito provjerava prije nego što se pretvori u aplikaciju. To je složen jezik za učenje i savladavanje mu može potrajati znatna količina vremena. Na raspolaganju su razni cross-platformski alati koji omogućuju aplikacije napisane na C #, a koje se mogu koristiti preko mobilnih i stolnih računala.

Ako tražite posao koji je povezan sa C # OOP, trebate se pripremiti za pitanja o intervjuu za C # OOP za 2019. godinu. Iako je svaki intervju različit i opseg posla je također različit, možemo vam pomoći u odgovoru na vrhu C # OOP pitanja za intervjue s odgovorima koji će vam pomoći da skočite i postignete vam uspjeh u intervjuu.

Ispod se nalazi vrh 2019. C # OOP intervjua Pitanja koja se često postavljaju u intervjuu ova su gornja pitanja podijeljena u dva dijela:

Dio 1 - C # OOP pitanja za razgovor (osnovna)

Ovaj prvi dio pokriva osnovna C # OOP pitanja za intervju i odgovore

1. Koja je razlika između sučelja i apstraktnog razreda?

Odgovor:
Neke razlike su navedene u nastavku:

  • Apstraktna klasa može imati ne-apstraktne metode (konkretne metode), dok u slučaju sučelja sve metode moraju biti apstraktne.
  • Apstraktna klasa može deklarirati ili koristiti bilo koje varijable dok sučelje to ne smije učiniti.
  • U apstraktnoj klasi svi su podaci ili funkcije po zadanom privatni, dok su u sučelju sve javne, ne možemo ih ručno promijeniti.
  • Konstruktor apstraktne klase koristi dok u sučelju nemamo nijednu vrstu konstruktora.
  • Klasa može implementirati bilo koji broj sučelja, ali podrazred može koristiti samo jednu apstraktnu klasu.

2. Što su delegati i njegove uporabe?

Odgovor:
Objekt delegat je varijabla referentnog tipa koja se koristi za držanje reference na metodu. Referenca se može promijeniti u vrijeme izvođenja koje drži objekt delegata. Objekt delegat može sadržavati više referenci funkcija koja je poznata i kao Popis poziva koji upućuje funkcije u nizu FIFO, a nove funkcije ref na ovom popisu za vrijeme izvršavanja mora obavljati operator + =, a može ukloniti - operator.
Delegati se posebno koriste za provođenje događaja i metode povratnog poziva. Svi delegati implicitno su izvedeni iz sustava. Delegatna klasa.

Prijeđite na sljedeća C # OOP pitanja za intervju

3. Koja je razlika između kasnog vezivanja i ranog vezivanja?

Odgovor:
U polimorfizmu Kompilacija vremena ili ranom povezivanju upotrijebit ćemo više metoda s istim nazivom, ali različitom vrstom parametra ili možda brojem ili parametrom, zbog toga možemo izvoditi različite i različite zadatke s istim nazivom metode u istoj klasi koja je također poznata kao Metoda preopterećenja.

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

Dinamički / runtime polimorfizam je također poznat kao kasno vezivanje. Ovdje su naziv metode i potpis metode (broj parametara i vrsta parametra moraju biti isti i mogu imati različitu implementaciju). Poništavanje metoda primjer je dinamičkog polimorfizma.

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. Što bi se dogodilo u slučaju da naslijeđena sučelja imaju konfliktna imena metoda?

Odgovor:
Ovo su uobičajena C # OOP pitanja za razgovor postavljena u intervjuu. ako imamo sukobljene metode u istoj klasi, ne možemo implementirati njihovo tijelo neovisno u istu klasu zbog istog naziva i istog potpisa, pa moramo koristiti naziv sučelja prije naziva metode da bismo uklonili zbrku ove metode.

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. Koji su različiti načini preopterećenja neke metode?

Odgovor:
Preopterećenje metoda je drugi naziv polimorfizma koji se temelji na vremenu sastavljanja, gdje možemo stvoriti metodu s istim nazivom, ali s drugačijim potpisom. To se radi u vrijeme sastavljanja i možemo to učiniti na više načina, ali naziv metode ostao bi isti.

Brojni parametri mogu biti različiti.
Vrsta parametra može biti različita.
Redoslijed parametra može biti različit.

Primjer -

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

Dio 2 - C # OOP pitanja za intervju (napredno)

Ovaj prvi dio pokriva napredna C # OOP intervju pitanja i odgovore

6. Što je modifikator pristupačnosti i koliko ih ima u C #?

Odgovor:
Modifikatori pristupa su ključne riječi koje se koriste za određivanje deklarirane pristupačnosti člana ili vrste. U C # postoji 5 nekoliko vrsta Modifikatora pristupa.

Javno - nema ograničenja pristupa javnim članovima.
Privatni - ograničeni pristup unutar definicije klase, ako nije naveden nijedan, to je zadana postavka.
Zaštićeno - pristup je ograničen na definiciju klase i bilo koju klasu koja nasljeđuje iz klase.
Interni pristup ograničen je isključivo na klase definirane u trenutnom projektu
Zaštićenom internom članu može se pristupiti bilo gdje u istoj grupi, a dostupan je i nasljeđivanjem te klase, a može biti i izvan skupštine samo u izvedenom razredu.

7. Što je virtualna metoda u C #?

Odgovor:
Virtualna metoda je metoda koja se može redefinirati u izvedenim klasama. Virtualna metoda ima implementaciju u osnovnoj klasi kao i izvedenu iz klase. Koristi se kada je osnovna funkcionalnost metode ista, ali ponekad je potrebno više funkcionalnosti u izvedenoj klasi. Virtualna metoda stvara se u osnovnoj klasi koja se može nadjačati u izvedenoj klasi. Virtualnu metodu u osnovnoj klasi stvaramo pomoću virtualne ključne riječi i ta metoda se nadjačava u izvedenom razredu korištenjem ključne riječi override.
Kada se aktivira virtualna metoda, tip pokretanja objekta provjerava se za prevladavajućeg člana. Pozva se prevladavajući član u većini izvedenih klasa, što može biti izvorni član ako nijedna izvedena klasa nije nadjačala člana. Metode su prema zadanim postavkama ne-virtualne. Ne možemo nadjačati ne-virtualnu metodu.

Prijeđite na sljedeća C # OOP pitanja za intervju

8. Kako izbjeći NULL u C #?

Odgovor:
Null nije objekt. Možemo imati klasu, ali varijabla s NULL vrijednošću znači da ne pokazuje ni na jedan objekt. Mogli bismo naići na dio koda koji sadrži mnogo uvjetnih izraza koji bi provjerili je li vrijednost varijable NULL. Provjerimo statičku metodu:

javni statički niz DisplayUpperString (string s) (

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

Ovaj je kôd u redu i pretvara se u velika slova dani niz.
Ali iz perspektive OO, razmislite o konstrukciji objekta koji ne predstavlja ništa, umjesto da ga procijenite za NULL.

javni statički niz stringUUPSStrring (MogućiStringovi) (
string gornji = s.ToPossibleUpper ();
povratak gornji;
)

Sada je funkcija manje zbijena, čitljivija i više ne koristi ček za NULL vrijednost.

9. Što je metoda proširenja u C # i kako ih koristiti?

Odgovor:
Ovo su često postavljana C # OOP pitanja za razgovor postavljena u intervjuu. Metoda proširenja posebna je vrsta statičke metode, ali one se nazivaju kao da su primjerene metode proširenog tipa. Ova metoda vam omogućuje dodavanje metoda postojećim tipovima bez stvaranja novog izvedenog tipa, prekomponovanja ili na neki drugi način modificiranja izvornog tipa. Metode proširenja postoje samo ako izričito uvezete imenski prostor u svoj izvorni kod pomoću uporabne direktive.

10. Može li se "ova" ključna riječ koristiti u statičkoj metodi?

Odgovor:
Budući da ključna riječ "ovo" vraća referencu na trenutnu instancu klase, pa je ne možemo koristiti unutar statičke metode. A statički članovi postoje bez ikakve instance klase i pozivaju se s nazivom klase, a ne putem instance. Dakle, možemo reći da je "ova" ključna riječ posebna vrsta referentne varijable koja se implicitno definira unutar svakog konstruktora i nestatička metoda kao prvi parametar klase tipa u kojoj je definirana.

Preporučeni članak

Ovo je vodič za Popis pitanja i odgovora za C # OOP intervjue kako bi kandidat mogao lako razbiti ova C # OOP pitanja za intervju. Ovdje u ovom postu, proučavali smo najčešća C # OOP pitanja za intervju koja se često postavljaju u intervjuima. Možete pogledati i sljedeće članke da biste saznali više -

  1. Pitanja o intervjuu za Hadoop Admin
  2. 12 nevjerojatnih iskrenih pitanja o intervjuu
  3. 10 Važna pitanja za intervju s Ab initio
  4. 25 najvažnijih pitanja o intervjuu s informatikom
  5. Koje su prednosti C # i Js