10 najlepszych pytań i odpowiedzi na rozmowę kwalifikacyjną C # OOP (zaktualizowano do 2019 r.)

Spisie treści:

Anonim

Wprowadzenie C # OOP Wywiad Pytania i odpowiedzi

C # to zorientowany obiektowo, funkcjonalny, ogólny i zorientowany na komponenty język programowania. Służy do tworzenia różnorodnych aplikacji, jest szczególnie silny w tworzeniu aplikacji i gier Windows. Tworzenie stron internetowych można również efektywnie wykonywać za pomocą C # i staje się ono coraz bardziej popularne wśród aplikacji mobilnych. Jest to więc doskonały wybór dla każdego programisty, który chce tworzyć strony internetowe i tworzyć gry. Jest to język o typie statycznym, więc napisany kod źródłowy jest dokładnie sprawdzany, zanim zmieni się w aplikację. Jest to złożony język, którego opanowanie i opanowanie może zająć sporo czasu. Dostępne są różne narzędzia wieloplatformowe, które pozwalają aplikacjom napisanym w języku C #, z których można korzystać na urządzeniach mobilnych i stacjonarnych.

Jeśli szukasz pracy związanej z C # OOP, musisz przygotować się na pytania do rozmowy kwalifikacyjnej C # OOP 2019. Chociaż każda rozmowa kwalifikacyjna jest inna, a zakres pracy jest również inny, możemy pomóc Ci w odpowiedzi na najważniejsze pytania w rozmowie kwalifikacyjnej C # OOP z odpowiedziami, które pomogą Ci podjąć skok i odnieść sukces w rozmowie kwalifikacyjnej.

Poniżej znajduje się lista najlepszych pytań do wywiadu C # OOP 2019, które są często zadawane podczas wywiadu. Te najważniejsze pytania są podzielone na dwie części:

Część 1 - Pytania do wywiadu C # OOP (podstawowe)

Ta pierwsza część obejmuje podstawowe pytania i odpowiedzi do wywiadu w języku C # OOP

1. Jaka jest różnica między interfejsem a klasą abstrakcyjną?

Odpowiedź:
Niektóre różnice wymieniono poniżej:

  • Klasa abstrakcyjna może mieć metody nieabstrakcyjne (metody konkretne), natomiast w przypadku interfejsu wszystkie metody muszą być abstrakcyjne.
  • Klasa abstrakcyjna może deklarować lub używać dowolnych zmiennych, podczas gdy interfejs nie ma takiej możliwości.
  • W klasie abstrakcyjnej wszystkie elementy danych lub funkcje są domyślnie prywatne, podczas gdy w interfejsie wszystkie są publiczne, nie możemy ich zmienić ręcznie.
  • Klasa abstrakcyjna używa konstruktora, podczas gdy w interfejsie nie mamy żadnego typu konstruktora.
  • Klasa może implementować dowolną liczbę interfejsów, ale podklasa może co najwyżej wykorzystywać tylko jedną klasę abstrakcyjną.

2. Czym są delegaci i jakie są ich zastosowania?

Odpowiedź:
Obiekt delegowany to zmienna typu odwołania, która służy do przechowywania odwołania do metody. Odwołanie można zmienić w czasie wykonywania, który jest przechowywany przez obiekt uczestnika. Obiekt delegowany może zawierać wiele odniesień funkcji, które są również znane jako Lista wywołań, które odwołują się do funkcji w sekwencji FIFO, możemy nowe funkcje odnosić się do tej listy w czasie wykonywania przez operatora + = i usuwać przez - = operator.
Delegaci są szczególnie wykorzystywani do wdrażania zdarzeń i metod oddzwaniania. Wszyscy delegaci są domyślnie wywodzeni z Systemu. Deleguj klasę.

Przejdźmy do następnych pytań do wywiadu C # OOP

3. Jaka jest różnica między późnym wiązaniem a wczesnym wiązaniem?

Odpowiedź:
W przypadku polimorfizmu czasu kompilacji lub wczesnego wiązania użyjemy wielu metod o tej samej nazwie, ale o innym typie parametru, a może liczby lub parametru z tego powodu możemy wykonywać różne zadania z tą samą nazwą metody w tej samej klasie, która jest również znany jako Przeciążenie metody.

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

Polimorfizm dynamiczny / runtime jest również znany jako późne wiązanie. Tutaj nazwa metody i podpis metody (liczba parametrów i typ parametru muszą być takie same i mogą mieć inną implementację). Zastępowanie metod jest przykładem dynamicznego polimorfizmu.

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. Co by się stało, gdyby odziedziczone interfejsy miały sprzeczne nazwy metod?

Odpowiedź:
Jest to typowe pytania do wywiadu C # OOP zadawane podczas wywiadu. jeśli mamy sprzeczne metody w tej samej klasie, nie możemy zaimplementować ich treści niezależnie w tej samej klasie z powodu tej samej nazwy i tego samego podpisu, więc musimy użyć nazwy interfejsu przed nazwą metody, aby usunąć zamieszanie tej metody.

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. Jakie są różne sposoby przeciążenia metody?

Odpowiedź:
Przeciążenie metody to inna nazwa polimorfizmu w czasie kompilacji, w której możemy stworzyć metodę o tej samej nazwie, ale o innej sygnaturze. Robi się to w czasie kompilacji i możemy to zrobić na wiele sposobów, ale nazwa metody pozostanie taka sama.

Liczba parametrów może być inna.
Rodzaj parametru może być inny.
Kolejność parametru może być inna.

Przykład -

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

Część 2 - pytania do wywiadu C # OOP (zaawansowane)

Ta pierwsza część obejmuje zaawansowane pytania i odpowiedzi do wywiadu C # OOP

6. Co to jest modyfikator dostępności i ile ich jest w C #?

Odpowiedź:
Modyfikatory dostępu to słowa kluczowe używane do określania deklarowanej dostępności członka lub typu. W języku C # istnieje 5 kilku rodzajów modyfikatorów dostępu.

Publiczny - brak ograniczeń w dostępie do członków publicznych.
Prywatny - ograniczony dostęp w ramach definicji klasy, jeśli nie podano żadnej, jest to ustawienie domyślne.
Chroniony - dostęp jest ograniczony do definicji klasy i każdej klasy dziedziczącej po klasie.
Wewnętrzny - dostęp jest ograniczony wyłącznie do klas zdefiniowanych w bieżącym projekcie
Chroniony element wewnętrzny może być dostępny w dowolnym miejscu w tym samym zestawie, a także dostępny przez dziedziczenie tej klasy.

7. Co to jest metoda wirtualna w języku C #?

Odpowiedź:
Metoda wirtualna to metoda, którą można przedefiniować w klasach pochodnych. Metoda wirtualna ma implementację w klasie bazowej, a także wywodzi się z tej klasy. Jest używany, gdy podstawowa funkcjonalność metody jest taka sama, ale czasem potrzebna jest większa funkcjonalność w klasie pochodnej. W klasie bazowej tworzona jest metoda wirtualna, którą można zastąpić w klasie pochodnej. Metodę wirtualną tworzymy w klasie podstawowej za pomocą słowa kluczowego virtual i metoda ta jest zastępowana w klasie pochodnej za pomocą słowa kluczowego override.
Po wywołaniu metody wirtualnej sprawdzany jest typ obiektu w czasie wykonywania dla nadrzędnego elementu. Wywoływany jest element nadrzędny w najbardziej pochodnej klasie, który może być pierwotnym elementem, jeśli żadna klasa pochodna nie nadpisała elementu. Domyślnie metody nie są wirtualne. Nie możemy przesłonić metody innej niż wirtualna.

Przejdźmy do następnych pytań do wywiadu C # OOP

8. Jak uniknąć NULL w C #?

Odpowiedź:
Null nie jest obiektem. Możemy mieć klasę, ale zmienna o wartości NULL oznacza, że ​​nie wskazuje ona na żaden obiekt. Możemy natknąć się na fragment kodu, który zawiera wiele instrukcji warunkowych, które sprawdzałyby, czy wartość zmiennej ma wartość NULL. Sprawdźmy metodę statyczną:

publiczny ciąg statyczny DisplayUpperString (string s) (

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

Ten kod jest w porządku i konwertuje na wielkie litery podany ciąg.
Ale z perspektywy OO, rozważ zbudowanie obiektu, który nic nie reprezentuje, zamiast oceny go pod kątem NULL.

public static String DisplayUpperString (PossibleString s) (
string upper = s.ToPossibleUpper ();
powrót górny;
)

Teraz funkcja jest mniej zagracona, bardziej czytelna i nie używa już sprawdzania wartości NULL.

9. Co to jest metoda rozszerzenia w C # i jak z nich korzystać?

Odpowiedź:
Jest to często zadawane pytania podczas wywiadu w języku C # OOP. Metoda rozszerzenia jest specjalnym rodzajem metody statycznej, ale są one wywoływane tak, jakby były metodami instancji typu rozszerzonego. Ta metoda umożliwia dodawanie metod do istniejących typów bez tworzenia nowego typu pochodnego, ponownej kompilacji lub innej modyfikacji oryginalnego typu. Metody rozszerzeń mają zastosowanie tylko wtedy, gdy jawnie importujesz przestrzeń nazw do kodu źródłowego za pomocą dyrektywy using.

10. Czy „tego” słowa kluczowego można użyć w metodzie statycznej?

Odpowiedź:
Ponieważ słowo kluczowe „this” zwraca odwołanie do bieżącej instancji klasy, dlatego nie możemy tego użyć wewnątrz metody statycznej. A członkowie statyczni istnieją bez żadnej instancji klasy i wywołują ją z nazwą klasy, a nie instancją. Możemy więc powiedzieć, że „to” słowo kluczowe jest specjalnym typem zmiennej referencyjnej, która jest domyślnie zdefiniowana w ramach każdego konstruktora i metody niestatycznej jako pierwszy parametr klasy typu, w której jest zdefiniowana.

Polecany artykuł

Jest to przewodnik po liście pytań i odpowiedzi podczas rozmowy kwalifikacyjnej w języku C # OOP, dzięki czemu kandydat może łatwo przełamać te pytania podczas rozmowy kwalifikacyjnej w języku C # OOP. Tutaj, w tym poście, badaliśmy najlepsze pytania do wywiadu C # OOP, które często zadawane są w wywiadach. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Pytania do wywiadu administracyjnego Hadoop
  2. 12 niesamowitych pytań do wywiadu Spark
  3. 10 ważnych pytań do wywiadu Ab initio
  4. 25 najważniejszych pytań do wywiadu z zakresu informatyki
  5. Jakie są zalety C # i Js