50 лучших вопросов и ответов на собеседовании по C# для опытных и новичков (обновление 2021 г.)
C# — это язык программирования общего назначения, который охватывает различные дисциплины, такие как объектно-ориентированное программирование, статическая типизация, компонентно-ориентированное программирование, строгая типизация и т. д. C# широко используется в среде ASP.NET для создания веб-сайтов, веб-приложений и игр. Во всем мире существуют огромные возможности для программирования на C#. Если вы думаете о том, чтобы построить карьеру в программировании на C#, вам нужно пройти собеседование, на котором вам будет задано несколько сложных вопросов и ответов от C# от Basic до C#, как указано ниже.
Это тщательно подобранный список лучших вопросов и ответов на собеседованиях по C#, которые, скорее всего, будут заданы во время собеседования. Кандидатам, скорее всего, будут заданы как базовые вопросы собеседования по C#, так и сложные вопросы собеседования по C#, в зависимости от их опыта и различных других факторов. Этот список охватывает все вопросы для собеседования по C-sharp для новичков, а также вопросы для собеседования по C# для опытных профессионалов.
Бесплатная загрузка в формате PDF:Вопросы для собеседования по C#
Вопросы и ответы на собеседовании по C# для первокурсников и со стажем работы 2, 3, 5 или 10 лет
Вот несколько часто задаваемых вопросов на собеседовании для новичков, а также для опытных кандидатов в разработчики C#, чтобы получить подходящую работу.
Мы рассмотрели более 50 основных вопросов, чтобы продвинуть вперед часто задаваемые вопросы и ответы на собеседованиях по C#
Основные вопросы для собеседования по C# для новичков
- Что такое C#?
- Объясните типы комментариев в C# на примерах
- Можно ли выполнить несколько блоков catch?
- В чем разница между public, static и void?
- Что такое объект?
- Определение конструкторов
- Что такое зубчатые массивы?
- В чем разница между параметрами ref и out?
- Зачем используется оператор «using» в C#?
- Что такое сериализация?
1. Что такое С#?
C# — это объектно-ориентированный, типобезопасный и управляемый язык, который компилируется платформой .Net для создания Microsoft Intermediate Language.
2. Объясните типы комментариев в C# на примерах
Одна строка
Пример:
06
II. Несколько строк (/* */)
Пример:
15пре>III. XML-комментарии (///).
Например:
233. Можно ли выполнить несколько блоков catch?
Нет, несколько блоков catch одинакового типа не могут быть выполнены. После выполнения надлежащего кода catch управление передается в блок finally, а затем выполняется код, следующий за блоком finally.
4. В чем разница между public, static и void?
Публичные объявленные переменные или методы доступны в любом месте приложения. Статические объявленные переменные или методы доступны глобально без создания экземпляра класса. Статический член по умолчанию недоступен глобально, это зависит от используемого типа измененного доступа. Компилятор сохраняет адрес метода в качестве точки входа и использует эту информацию для начала выполнения до того, как будут созданы какие-либо объекты. А Void — это модификатор типа, указывающий, что метод или переменная не возвращает никакого значения.
5. Что такое объект?
<центр>
<рисунок>Объект в C#
рисунок>центр>
Объект — это экземпляр класса, через который мы получаем доступ к методам этого класса. Ключевое слово «Новый» используется для создания объекта. Класс, который создает объект в памяти, будет содержать информацию о методах, переменных и поведении этого класса.
6. Определение конструкторов
Конструктор — это функция-член класса, имеющая то же имя, что и его класс. Конструктор автоматически вызывается всякий раз, когда создается объектный класс. Он создает значения элементов данных при инициализации класса.
7. Что такое зубчатые массивы?
Массив, содержащий элементы типа array, называется зубчатым массивом. Элементы могут быть разных габаритов и размеров. Мы также можем вызвать jagged Array как массив массивов.
8. В чем разница между параметрами ref и out?
Аргумент, переданный как ref, должен быть инициализирован перед передачей в метод, тогда как параметр out не нужно инициализировать перед передачей в метод.
9. Какая польза от оператора «using» в C#?
Блок «использование» используется для получения ресурса и его обработки, а затем автоматически удаляется после завершения выполнения блока.
10. Что такое сериализация?
Когда мы хотим передать объект по сети, мы должны преобразовать объект в поток байтов. Процесс преобразования объекта в поток байтов называется сериализацией. Чтобы объект можно было сериализовать, он должен реализовать интерфейс ISerialize. Десериализация — это обратный процесс создания объекта из потока байтов.
11. Можем ли мы использовать команду «this» внутри статического метода?
Мы не можем использовать This в статическом методе, потому что мы можем использовать только статические переменные/методы в статическом методе.
12. В чем разница между константами и только для чтения?
Постоянные переменные объявляются и инициализируются во время компиляции. Значение не может быть изменено впоследствии. Только для чтения используется только тогда, когда мы хотим присвоить значение во время выполнения.
Продвинутые вопросы для собеседования по C# за 3/5/10 лет опыта
13. Что такое интерфейсный класс? Приведите один пример
Интерфейс — это абстрактный класс, который имеет только общедоступные абстрактные методы, и методы имеют только объявление, а не определение. Эти абстрактные методы должны быть реализованы в унаследованных классах.
3714. Что такое типы значений и ссылочные типы?
Тип значения содержит значение данных в своем собственном пространстве памяти. Пример
45Ссылочный тип хранит адрес объекта, в котором хранится значение. Это указатель на другое место в памяти.
5315. Что такое настраиваемый контроль и пользовательский контроль?
Пользовательские элементы управления — это элементы управления, сгенерированные в виде скомпилированного кода (DLL), они проще в использовании и могут быть добавлены в набор инструментов. Разработчики могут перетаскивать элементы управления в свои веб-формы. Атрибуты могут во время разработки. Мы можем легко добавить настраиваемые элементы управления в несколько приложений (если используются общие библиотеки DLL). Итак, если они являются частными, мы можем скопировать dll в каталог bin веб-приложения, а затем добавить ссылку и использовать их.
Пользовательские элементы управления очень похожи на включаемые файлы ASP, и их легко создать. Пользовательские элементы управления нельзя размещать на панели инструментов и перетаскивать из нее. У них есть свой дизайн и программный код. Расширение файла для пользовательских элементов управления — ascx.
16. Что такое запечатанные классы в C#?
Мы создаем запечатанные классы, когда хотим ограничить наследование класса. Запечатанный модификатор, используемый для предотвращения происхождения от класса. Если мы принудительно укажем запечатанный класс в качестве базового класса, произойдет ошибка времени компиляции.
17. Что такое перегрузка метода?
Перегрузка методов — это создание нескольких методов с одинаковыми именами и уникальными сигнатурами в одном классе. Когда мы компилируем, компилятор использует разрешение перегрузки, чтобы определить конкретный вызываемый метод.
18. В чем разница между Array и Arraylist?
В массиве могут быть элементы только одного типа. Размер массива фиксируется при сравнении. Ararlist похож на массив, но не имеет фиксированного размера.
19. Можно ли переопределить закрытый виртуальный метод?
Нет, потому что они недоступны за пределами класса.
20. Опишите модификатор доступности «защищенный внутренний».
Защищенные внутренние переменные/методы доступны в той же сборке, а также из классов, производных от этого родительского класса.
21. В чем разница между классами System.String и System.Text.StringBuilder?
System.String неизменяем. Когда мы изменяем значение строковой переменной, для нового значения выделяется новая память, а предыдущее выделение памяти освобождается. System.StringBuilder был разработан с учетом концепции изменяемой строки, в которой можно выполнять различные операции без выделения отдельной области памяти для измененной строки.
22. В чем разница между System.Array.CopyTo() и System.Array.Clone()?
Используя метод Clone(), мы создаем новый объект массива, содержащий все элементы исходного массива, и используем метод CopyTo(). Все элементы существующего массива копируются в другой существующий массив. Оба метода выполняют поверхностное копирование.
23. Как мы можем отсортировать элементы массива в порядке убывания?
Использование методов Sort(), за которыми следует метод Reverse().
24. Запишите синтаксис C#, чтобы поймать исключение
Чтобы поймать исключение, мы используем блоки try-catch. Блок catch может иметь параметр типа system.Exception.
Например:
66В приведенном выше примере мы можем опустить параметр в операторе catch.
25. В чем разница между интерфейсом и абстрактным классом?
В интерфейсах все методы имеют только объявление, но не определение. В абстрактном классе у нас могут быть некоторые конкретные методы. В интерфейсном классе все методы общедоступны. Абстрактный класс может иметь частные методы.
26. В чем разница между методами Finalize() и Dispose()?
Dispose() вызывается, когда мы хотим, чтобы объект освобождал вместе с ними любые неуправляемые ресурсы. С другой стороны, Finalize() используется для той же цели, но не обеспечивает сборку мусора объекта.
27. Что такое циклические ссылки?
Циклическая ссылка — это ситуация, в которой два или более ресурсов взаимозависимы друг от друга, вызывает состояние блокировки и делает ресурсы непригодными для использования.
28. Что такое дженерики в C#.NET?
Обобщения используются для создания повторно используемых классов кода, чтобы уменьшить избыточность кода, повысить безопасность типов и производительность. Используя дженерики, мы можем создавать классы коллекций. Чтобы создать универсальную коллекцию, следует использовать пространство имен System.Collections.Generic вместо таких классов, как ArrayList в пространстве имен System.Collections. Универсальные шаблоны способствуют использованию параметризованных типов.
29. Что такое пул объектов в .NET?
Пул объектов — это контейнер с объектами, готовыми к использованию. Он отслеживает объект, который используется в данный момент, общее количество объектов в пуле. Это снижает затраты на создание и повторное создание объектов.
30. Перечислите часто используемые типы исключений в .net
ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException, OverflowException, IndexOutOfRangeException, InvalidCastException, InvalidOperationException, IOEndOfStreamException, NullReferenceException, OutOfMemoryException, StackOverflowException и т. д.
31. Что такое настраиваемые исключения?
Иногда возникают ошибки, которые необходимо обрабатывать в соответствии с требованиями пользователя. Для них используются настраиваемые исключения и используются определенные исключения.
32. Что такое делегаты?
Делегаты — это те же указатели на функции в C++, но единственная разница в том, что они безопасны для типов, в отличие от указателей на функции. Делегаты необходимы, потому что их можно использовать для написания гораздо более общих функций, безопасных для типов.
33. Как вы наследуете класс от другого класса в C#?
Двоеточие используется в качестве оператора наследования в C#. Просто поставьте двоеточие, а затем имя класса.
открытый класс DerivedClass :BaseClass
34. Какой базовый класс в .net, от которого происходят все классы?
7835. В чем разница между переопределением метода и перегрузкой метода?
При переопределении метода мы изменяем определение метода в производном классе, что меняет поведение метода. Перегрузка метода — это создание метода с одинаковым именем в одном классе с разными сигнатурами.
36. Какими способами можно перегрузить метод?
Методы можно перегружать, используя разные типы данных для параметра, разный порядок параметров и разное количество параметров.
37. Почему нельзя указать модификатор доступа для методов внутри интерфейса?
В интерфейсе у нас есть виртуальные методы, у которых нет определения метода. Все методы должны быть переопределены в производном классе. Вот почему все они общедоступны.
38. Как мы можем настроить класс для наследования, но не допустить переопределения метода?
Объявите класс общедоступным и сделайте метод запечатанным, чтобы предотвратить его переопределение.
39. Что произойдет, если унаследованные интерфейсы имеют конфликтующие имена методов?
Реализация зависит от вас, поскольку метод находится внутри вашего собственного класса. Может возникнуть проблема, когда методы из разных интерфейсов ожидают разные данные, но с компилятором все в порядке.
40. В чем разница между структурой и классом?
Структуры — это переменные типа значения, а классы — это ссылочные типы. Структуры, хранящиеся в стеке, вызывают дополнительные накладные расходы, но ускоряют извлечение. Структуры не могут наследоваться.
41. Как использовать типы, допускающие значение NULL, в .Net?
Типы значений могут принимать либо свои обычные значения, либо нулевое значение. Такие типы называются типами, допускающими значение NULL.
8442. Как мы можем создать массив со значениями, отличными от значений по умолчанию?
Мы можем создать массив со значениями, отличными от значений по умолчанию, используя Enumerable.Repeat.
43. В чем разница между операторами «есть» и «как» в С#?
Оператор is используется для проверки совместимости объекта с заданным типом и возвращает результат в виде логического значения.
Оператор as используется для приведения объекта к типу или классу.
44. Что такое многоадресный делегат?
Делегат, которому назначено несколько обработчиков, называется многоадресным делегатом. Каждый обработчик назначается методу.
45. Что такое индексаторы в C# .NET?
Индексаторы известны как интеллектуальные массивы в C#. Он позволяет индексировать экземпляры класса так же, как массив.
Например:
9446. В чем разница между «throw» и «throw ex» в .NET?
Оператор «Throw» сохраняет исходный стек ошибок, тогда как «throw ex» имеет трассировку стека от точки их броска. Всегда рекомендуется использовать команду "throw", поскольку она предоставляет более точную информацию об ошибке.
47. Что такое атрибуты C# и их значение?
C# предоставляет разработчикам возможность определять декларативные теги для определенных сущностей, например. Класс, метод и т. д. называются атрибутами. Информацию об атрибуте можно получить во время выполнения с помощью Reflection.
48. Как реализовать одноэлементный шаблон проектирования на C#?
В одноэлементном шаблоне класс может иметь только один экземпляр и предоставляет к нему глобальную точку доступа.
Например:
10249. В чем разница между directcast и ctype?
DirectCast используется для преобразования типа объекта, требующего, чтобы тип времени выполнения был таким же, как указанный тип в DirectCast.
Ctype используется для преобразования, где преобразование определяется между выражением и типом.
50. Является ли код C# управляемым или неуправляемым кодом?
C# — это управляемый код, поскольку среда выполнения Common Language Runtime может компилировать код C# в промежуточный язык.
51. Что такое консольное приложение?
Консольное приложение — это приложение, которое можно запустить в командной строке Windows. Для любого новичка в .Net создание консольного приложения в идеале является первым шагом.
52. Приведите пример удаления элемента из очереди
Метод dequeue используется для удаления элемента из очереди.
119
10 лучших C# IDE для Windows, Linux, Mac (обновление 2021 г.) Учебное пособие по C# в формате PDF:примеры для начинающих (скачать сейчас)
Язык C
- Основные показатели для измерения опыта конечных пользователей в ваших облачных приложениях
- Top Cloud Вопросы и ответы на собеседовании на 2020 год
- Пять основных проблем и проблем для 5G
- 10 лучших C# IDE для Windows, Linux, Mac (обновление 2021 г.)
- Финансирование цепочки поставок:тенденции, проблемы и вопросы на 2019 год
- Обновление наград:вручение наград Robotics and Automation News Awards 2021 состоится
- Meo class 4 устные вопросы и ответы по электрике
- 5G и Edge поднимают новые задачи кибербезопасности на 2021 год
- Вопросы и ответы о производстве Lights Out
- 5 лучших статей о сжатом воздухе и газе 2021 года