Top 10 C # OOP Интервью Вопросы и ответы (Обновлено на 2019 г.)

Содержание:

Anonim

Введение C # OOP Интервью Вопросы и ответы

C # является объектно-ориентированным, функциональным, универсальным и компонентно-ориентированным языком программирования. Он используется для создания различных приложений, он особенно силен при создании приложений и игр для Windows. Веб-разработка также может быть эффективно выполнена с помощью C #, и она становится все более популярной для мобильных разработок. Таким образом, это отличный выбор для любого программиста, который хочет заняться веб-разработкой и разработкой игр. Это статически типизированный язык, поэтому написанный исходный код тщательно проверяется, прежде чем он превращается в приложение. Это сложный язык для изучения и освоение может занять значительное время. Существуют различные кроссплатформенные инструменты, которые позволяют приложениям, написанным на C #, которые можно использовать для мобильных и настольных компьютеров.

Если вы ищете работу, связанную с C # OOP, вам необходимо подготовиться к вопросам интервью C # OOP 2019 года. Хотя каждое собеседование отличается и объем работы также различен, мы можем помочь вам с ответами на главные вопросы об интервью C # OOP, которые помогут вам сделать скачок и добиться успеха на собеседовании.

Ниже приведены лучшие вопросы для интервью C # OOP 2019 года, которые часто задают во время интервью. Эти главные вопросы разделены на две части:

Часть 1 - вопросы интервью с C # OOP (базовый уровень)

В этой первой части рассматриваются основные вопросы и ответы по C # OOP.

1. В чем разница между интерфейсом и абстрактным классом?

Ответ:
Некоторая разница приведена ниже:

  • Абстрактный класс может иметь неабстрактные методы (конкретные методы), в то время как в случае интерфейса все методы должны быть абстрактными.
  • Абстрактный класс может объявлять или использовать любые переменные, в то время как интерфейсу это запрещено.
  • В абстрактном классе все члены-данные или функции по умолчанию являются закрытыми, в то время как в интерфейсе все общедоступны, мы не можем изменить их вручную.
  • Абстрактный класс использует конструктор, тогда как в интерфейсе у нас нет какого-либо типа конструктора.
  • Класс может реализовывать любое количество интерфейсов, но подкласс может максимально использовать только один абстрактный класс.

2. Что такое делегаты и как они используются?

Ответ:
Объект делегата - это переменная ссылочного типа, которая используется для хранения ссылки на метод. Ссылка может быть изменена во время выполнения, которое удерживается объектом делегата. Объект делегата может содержать ссылку на многие функции, которая также называется списком вызовов, который ссылается на функции в последовательности FIFO, мы можем добавлять новые функции в этот список во время выполнения с помощью оператора + = и удалять с помощью оператора - =.
Делегаты особенно используются для реализации событий и методов обратного вызова. Все делегаты неявно являются производными от Системы. Делегатский класс.

Давайте перейдем к следующему C # OOP Интервью Вопросы

3. В чем разница между поздним и ранним связыванием?

Ответ:
В полиморфизме времени компиляции или раннем связывании мы будем использовать несколько методов с одним и тем же именем, но с другим типом параметра или, возможно, числом или параметром, поэтому мы можем выполнять разные задачи с одним и тем же именем метода в одном классе, который также известный как метод перегрузки.

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

Динамический / динамический полиморфизм также известен как позднее связывание. Здесь имя метода и сигнатура метода (количество параметров и тип параметра должны быть одинаковыми и могут иметь различную реализацию). Переопределение метода является примером динамического полиморфизма.

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. Что произойдет в случае, если унаследованные интерфейсы имеют конфликтующие имена методов?

Ответ:
Это общие вопросы интервью C # OOP, задаваемые в интервью. если у нас есть конфликтующие методы в одном и том же классе, мы не можем реализовать их тело независимо в одном и том же классе из-за того же имени и той же сигнатуры, поэтому мы должны использовать имя интерфейса перед именем метода, чтобы устранить эту путаницу.

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. Каковы разные способы перегрузки метода?

Ответ:
Перегрузка методов - это еще одно название полиморфизма во время компиляции, где мы можем создать метод с тем же именем, но с другой сигнатурой. Это делается во время компиляции, и мы можем сделать это несколькими способами, но имя метода останется прежним.

Ряд параметров может быть разным.
Тип параметра может быть разным.
Порядок параметра может быть разным.

Пример -

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 - Вопросы об интервью C # OOP (Продвинутый)

Эта первая часть охватывает продвинутые вопросы и ответы по C # OOP.

6. Что такое модификатор доступности и сколько их в C #?

Ответ:
Модификаторы доступа - это ключевые слова, используемые для указания объявленной доступности члена или типа. В C # существует 5 типов модификаторов доступа.

Публичный - нет ограничений на доступ к публичным участникам.
Частный - ограниченный доступ в определении класса, если ни один не указан, то это значение по умолчанию.
Защищенный - доступ ограничен определением класса и любым классом, который наследуется от класса.
Внутренний - доступ ограничен только классами, определенными текущим проектом
Защищенный внутренний член может быть доступен в любом месте той же сборки, а также доступен путем наследования этого класса, он может быть доступен вне сборки только в производном классе.

7. Что такое виртуальный метод в C #?

Ответ:
Виртуальный метод - это метод, который можно переопределить в производных классах. Виртуальный метод имеет реализацию в базовом классе, а также производную от класса. Он используется, когда базовая функциональность метода одинакова, но иногда требуется больше функциональности в производном классе. В базовом классе создается виртуальный метод, который можно переопределить в производном классе. Мы создаем виртуальный метод в базовом классе, используя ключевое слово virtual, и этот метод переопределяется в производном классе с помощью ключевого слова override.
Когда вызывается виртуальный метод, тип объекта во время выполнения проверяется для переопределяющего члена. Вызывается переопределяющий член в наиболее производном классе, который может быть исходным членом, если ни один производный класс не переопределил член. По умолчанию методы не виртуальные. Мы не можем переопределить не виртуальный метод.

Давайте перейдем к следующему C # OOP Интервью Вопросы

8. Как избежать NULL в C #?

Ответ:
Нуль не является объектом. У нас может быть класс, но переменная со значением NULL означает, что он не указывает ни на какой объект. Мы могли бы встретить фрагмент кода, который содержит много условных операторов, которые проверяли бы, является ли значение переменной NULL. Давайте проверим статический метод:

открытая статическая строка DisplayUpperString (string s) (

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

Этот код в порядке, и преобразовать в верхний регистр заданную строку.
Но с точки зрения ОО, рассмотрите возможность создания объекта, который ничего не представляет, вместо оценки его на NULL.

public static String DisplayUpperString (возможная строка s) (
string upper = s.ToPossibleUpper ();
вернуть верхний;
)

Теперь функция стала менее загроможденной, более читаемой и больше не использует проверку на значение NULL.

9. Что такое метод расширения в C # и как их использовать?

Ответ:
Это часто задаваемые вопросы об интервью C # OOP, задаваемые в интервью. Метод расширения - это особый вид статического метода, но они вызываются так, как если бы они были методами экземпляра в расширенном типе. Этот метод позволяет добавлять методы к существующим типам, не создавая новый производный тип, не перекомпилируя или иным образом не изменяя исходный тип. Методы расширения доступны только в том случае, если вы явно импортируете пространство имен в исходный код с помощью директивы using.

10. Может ли ключевое слово «this» использоваться в статическом методе?

Ответ:
Поскольку ключевое слово «this» возвращает ссылку на текущий экземпляр класса, мы не можем использовать его внутри статического метода. И статические члены существуют без какого-либо экземпляра класса и вызывают с именем класса, а не экземпляром. Таким образом, мы можем сказать, что ключевое слово «this» является специальным типом ссылочной переменной, которая неявно определяется в каждом конструкторе и нестатическом методе в качестве первого параметра класса типа, в котором она определена.

Рекомендуемая статья

Это было руководство к списку вопросов и ответов для интервью с C # OOP, чтобы кандидат мог легко разобрать эти вопросы для интервью на C # OOP. Здесь, в этом посте, мы изучили вопросы интервью C # OOP, которые часто задают в интервью. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Hadoop Admin Интервью Вопросы
  2. 12 удивительных вопросов об интервью Spark
  3. 10 важных вопросов для интервью ab initio
  4. 25 самых важных вопросов по информатике
  5. Каковы преимущества C # и Js