354 просмотра
От 30 мая 2023

Вопросы для собеседования о C# и .NET

1. Какие типы данных есть в C#?

bool (System.Boolean): true/false. byte (System.Byte): целое число от 0 до 255, занимает 1 байт. sbyte (System.SByte): целое число от -128 до 127, занимает 1 байт. short (System.Int16): целое число от -32768 до 32767, занимает 2 байта. ushort (System.UInt16): целое число от 0 до 65535, занимает 2 байта. int (System.Int32): целое число от -2147483648 до 2147483647, занимает 4 байта. uint (System.UInt32): целое число от 0 до 4294967295, занимает 4 байта. long (System.Int64): целое число от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, занимает 8 байт. ulong (System.UInt64): целое число от 0 до 18 446 744 073 709 551 615, занимает 8 байт. float (System.Single): число с плавающей точкой от -3.4*1038 до 3.4*1038, занимает 4 байта. double (System.Double): число с плавающей точкой от ±5.0*10-324 до ±1.7*10308, занимает 8 байта. decimal (System.Decimal): десятичное дробное число. Если употребляется без десятичной запятой, имеет значение от ±1.0*10-28 до ±7.9228*1028, может хранить 28 знаков после запятой, занимает 16 байт. char (System.Char): одиночный символ в кодировке Unicode, занимает 2 байта. string (System.String): набор символов Unicode. object (System.Object): значение любого типа данных, занимает 4 байта на 32-разрядной платформе и 8 байт на 64-разрядной платформе.

2. Что такое System.Object?

Все классы в .NET, даже те, которые мы сами создаем, а также базовые типы, такие как System.Int32, являются неявно производными от класса System.Object. Даже если мы не указываем класс System.Object в качестве базового, по умолчанию он всё равно стоит на вершине иерархии наследования. Поэтому все типы и классы могут реализовать те методы, которые определены в System.Object, а именно: 1. ToString служит для получения строкового представления данного объекта. 2. GetHashCode позволяет возвратить некоторое числовое значение, которое будет соответствовать данному объекту или его хэш-код. 3. GetType позволяет получить тип данного объекта. 4. Equals позволяет сравнить два объекта на равенство.

3. Какие операции со строками вы знаете?

1. Конкатенация - string.Concat(s1, s2) 2. Сравнение - string.Compare(s1, s2) 3. Поиск в строке - s1.IndexOf(char) 4. Разбитие/разделение - s1.Split(new char[] { char }) 5. Обрезка - s1.Trim() или s1..Trim(new char[] { char1, char2 }) 6. Вставка - s1.Insert(index, substring) 7. Удаление части строки - s1.Remove(index, count) 8. Замена - s1.Replace(a, b) 9. Смена регистра - s1.ToLower() и s1.ToUpper()

4. Какие модификаторы доступа есть в C#?

Все типы и члены типов имеют уровень доступности. Он определяет возможность их использования из другого кода в вашей или в других сборках. Сборка — это .dll или .exe, созданные путем компиляции одного или нескольких CS-файлов в одной компиляции. Следующие модификаторы доступа позволяют указать доступность типа или члена при объявлении: public: доступ к типу или члену возможен из любого другого кода в той же сборке или другой сборке, ссылающейся на него. Уровень доступности общедоступных элементов типа определяется уровнем доступности самого типа. private: доступ к типу или члену возможен только из кода в том же объекте class или struct. protected: доступ к типу или члену возможен только из кода в том же объекте class, либо в class, производном от этого class. internal: доступ к типу или члену возможен из любого кода в той же сборке, но не из другой сборки. Другими словами, internal доступ к типам или членам можно получить из кода, который является частью той же компиляции. protected internal: доступ к типу или члену возможен из любого кода в той сборке, где он был объявлен, или из производного class в другой сборке. private protected: доступ к типу или элементу возможен из типов, производных от объекта class и объявляемых в сборке, содержащей этот объект.

5. В чём разница между const и readonly?

Значение const фиксируется на этапе компиляции и не может быть изменено во время исполнения кода. Значение readonly фиксируется на этапе исполнения в конструкторе класса. Из конструктора может меняться и многократно.

6. Поддерживает ли C# множественное наследование?

С# поддерживает множественное наследование в виде наследования от класса и нескольких интерфейсов, или просто от нескольких интерфейсов. Но не поддерживает наследование от нескольких классов.

7. Как запретить наследование от класса?

Для этого служит ключевое слово sealed.

8. Можно ли разрешить наследование класса, но запретить перекрытие метода?

Да. Указываем класс как public, а метод как sealed.

9. Разница между управляемым и неуправляемым кодом?

Управляемый код – это код, созданный компилятором .NET. Он не зависит от архитектуры целевой машины, поскольку выполняется CLR (Common Language Runtime), а не самой операционной системой. CLR и управляемый код предлагают разработчикам несколько преимуществ, таких как сборка мусора, проверка типов и обработка исключений. С другой стороны, неуправляемый код напрямую компилируется в родной машинный код и зависит от архитектуры целевой машины. Он выполняется непосредственно операционной системой. В неуправляемом коде разработчик должен убедиться, что он вручную решает вопросы использования и выделения памяти (особенно из-за утечек памяти), безопасности типов и исключений. В .NET компилятор Visual Basic и C# создает управляемый код. Чтобы получить неуправляемый код, приложение должно быть написано на C или C++.

10. Что такое упаковка и распаковка?

Поддержи проект и получи доступ ко всему контенту всего за 290

11. Что такое сборка мусора?

Поддержи проект и получи доступ ко всему контенту всего за 290

12. В чём разница между stack и heap?

Поддержи проект и получи доступ ко всему контенту всего за 290

13. Как устроена компиляция в .NET?

Поддержи проект и получи доступ ко всему контенту всего за 290

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

Поддержи проект и получи доступ ко всему контенту всего за 290

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

Поддержи проект и получи доступ ко всему контенту всего за 290

16. Что такое LINQ?

Поддержи проект и получи доступ ко всему контенту всего за 290

17. Что такое отложенное и немедленное выполнение в LINQ?

Поддержи проект и получи доступ ко всему контенту всего за 290

18. Что такое делегаты в .NET?

Поддержи проект и получи доступ ко всему контенту всего за 290

19. Что такое ref и out?

Поддержи проект и получи доступ ко всему контенту всего за 290

20. Что такое generics?

Поддержи проект и получи доступ ко всему контенту всего за 290

21. Что такое GetHashCode?

Поддержи проект и получи доступ ко всему контенту всего за 290

22. Что такое Finalize?

Поддержи проект и получи доступ ко всему контенту всего за 290

23. В чем различие между Finalize и Dispose?

Поддержи проект и получи доступ ко всему контенту всего за 290

24. В чём разница между throw и throw ex?

Поддержи проект и получи доступ ко всему контенту всего за 290

25. Что такое атрибут?

Поддержи проект и получи доступ ко всему контенту всего за 290

26. Что такое "as" и "is"?

Поддержи проект и получи доступ ко всему контенту всего за 290
Хочешь стать частью сообщества Девстанции?
Вступай в наш чат в Telegram

Также в этой категории

Викторина
  11 вопросов

Викторина по C# - Junior/Middle

Викторина на знание C#

49 просмотров
От 9 октября 2023

Вам может быть интересно

Шпаргалка
  60 вопросов

60 вопросов про базы данных и SQL

Вопросы и ответы с собеседования по базам данных и SQL

312 просмотров
От 20 февраля
Шпаргалка
  10 вопросов

Всё о репликации баз данных

Описание понятий и процессов репликации БД

178 просмотров
От 8 октября 2023
Шпаргалка
  7 вопросов

Коллекция полезных команд для Docker

Большая шпаргалка по всем командам Docker

200 просмотров
От 12 октября 2023
Шпаргалка
  11 вопросов

Теория шардинга баз данных

О распределении данных между серверами

243 просмотра
От 10 октября 2023

Топ тредов

Gravatar for 9tokio
Tokio:
то что раньше было бесплатным теперь платное - вот это я понимаю

Последнее сообщение:
Логотип Девстанции
Девстанция:
Спасибо за поддержку проекта :) Повышение качества контента - один из важнейших приоритетов. Этому м...
3 сообщения
212 просмотров

Логотип Девстанции
Девстанция:
Поиск людей для совместной разработки IT-стартапов

Последнее сообщение:
В этом треде пока нет сообщений
0 сообщений
107 просмотров

Логотип Девстанции
Девстанция:
Какой язык программирования выбрать в качестве первого?

Последнее сообщение:
Gravatar for 2kokke
Kokke:
Python или JS - универсально. Но по уму надо бы с чего-то строгого начинать и достаточно низкоуровне...
1 сообщение
139 просмотров

Все категории