1155 просмотров
От 4 июня

Ответы на вопросы для собеседования о 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++.

Логотип ДевстанцииАвторизуйтесь, чтобы просматривать следующий контент
11

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
12

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
13

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
14

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
15

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
16

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
17

Что такое LINQ?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
18

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
19

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
20

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
21

Что такое generics?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
22

Что такое GetHashCode?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
23

Что такое Finalize?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
24

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
25

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
26

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
27

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
Хотите стать частью сообщества Девстанции?
Вступайте в наш чат в Telegram

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

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

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

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

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

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

Вопросник
  10 вопросов

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

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

1009 просмотров
От 8 октября 2023
Вопросник
  60 вопросов

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

Ответы на вопросы с собеседований по БД и SQL

1623 просмотра
От 4 июня
Вопросник
  11 вопросов

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

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

927 просмотров
От 10 октября 2023
Вопросник
  7 вопросов

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

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

963 просмотра
От 12 октября 2023

Топ тредов

Gravatar for 1847arsen
Arsen
: Задача в Python под названием "Кратчайший путь в матрице"

Последнее сообщение:
Gravatar for 1847arsen
Arsen
: Ошибка на 3 тесте # Ожидаемый результат: 2 а должен быть 1
1 сообщение
31 просмотр

Gravatar for 1233freddypopa
freddypopa
: Добавить чекбокс, который отвечает за показ ранее тронутых задач (черновик)

Последнее сообщение:
: Отличная идея! Возьмём её на заметку!
1 сообщение
127 просмотров

: Предложите идею и получите спонсорский доступ на месяц

Последнее сообщение:
Gravatar for 1236borisops
Borisops
: Добавить темную тему) что бы можно было посмотреть сложность алгоритма и добавить тэги.
10 сообщений
342 просмотра

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