Коллекция вопросов ❓ на собеседовании в C# 🍧

Обзор вопросов по языка програмиированию C# и технологии NET


Project maintained by Dvurechensky-Docs Hosted on GitHub Pages — Theme by mattgraham

🔤 Особенности типа `string` в .NET

Typing SVG

Static Badge

✨ Оглавление

⬆ Вернуться к главной

🔹 1. Базовые факты


🔹 2. Неизменяемость (immutability)

⚠️ Поэтому частая конкатенация строк через + в цикле — дорогая операция. Для таких задач используют StringBuilder.


🔹 3. Интернирование строк (string interning)


🔹 4. Сравнение строк


🔹 5. Null и пустая строка


🔹 6. Частые подводные камни


🔹 7. Дополнительно (для middle+)


📌 Короткий ответ для джуна на собесе:

string — это ссылочный неизменяемый тип в .NET. Каждое изменение строки создаёт новый объект. Литералы интернируются в пуле, поэтому одинаковые строковые литералы указывают на одну и ту же ссылку. Для частых изменений используют StringBuilder. Сравнение строк переопределено и идёт по значению, а не по ссылке.


🔹 8. Оптимизация через StringBuilder

var sb = new StringBuilder();
for (int i = 0; i < 1000; i++) sb.Append(i);
string result = sb.ToString();

🔹 9. Методы сравнения строк зависят от культуры

Console.WriteLine("straße".Equals("STRASSE", StringComparison.OrdinalIgnoreCase)); // False
Console.WriteLine("straße".Equals("STRASSE", StringComparison.InvariantCultureIgnoreCase)); // True

🔹 10. Управление памятью (Large Object Heap)


🔹 11. Безопасность: SecureString


Окей, разбор типа string в .NET максимально подробно 🚀


🔹 12. Производительность


🔹 13. Полезные методы


🔹 14. Безопасность


⬆ Вернуться к главной

✨Dvurechensky✨