Язык C#

Темы:

  • Примитивные конструкции языка C#: Типы данных, Переменные, Методы, Операторы, Символы, Строки, Массивы, Циклы, Условия, Комментарии, Пространства имен, Перегрузка операторов

  • Ссылочные и значимые типы данных: Stack vs Heap, Классы и структуры, Класс Object, Модификаторы доступа: public/private/protected/internal/protected internal ; Интерфейсы и Абстрактные классы ; Перечисления ; Операторы const и readonly ; Упаковка и Распаковка

  • Обобщения для классов, методов, интерфейсов, структур и делегатов | Ограничения

  • Cтатические классы/свойства/конструкторы | Правила вызовов статических конструкторов

  • Наследование в С# | Правила вызова конструкторов в иерархиях наследования | Операторы is и as | constructor chaining | Использование ключевых слов virtual, override, new

  • Делегаты и События, Func vs Action | Лямбда Выражения/Анонимные методы | Обработка исключений try/catch/finally/throw, Фильтры исключений | Nullable типы | Методы расширения | Tuples

  • Классы string и StringBuilder, Неизменяемость строк, Интернирование строк, ASCII и Unicode

  • Структуры DateTime/TimeSpan/DateTimeOffset | Класс Random | Структура Guid | Интерфейсы IComparable, IEquatable, IComparer

  • Коллекции ArrayList, List, Dictionary, Hashtable, HashSet, LinkedList, Stack, Queue, Класс Array | Интерфейсы IEnumerable и IEnumerator, Утиная типизация (duck typing), Цикл foreach | Интерфейсы ICollection, IList, IReadOnlyList

Контрольные вопросы:

  • В чем разница между ссылочными и значимыми типами данных?

  • В чем разница между делегатами и событиями?

  • В чем разница между операторами const и readonly?

  • Может ли структура реализовывать интерфейс

  • Что такое Duck typing? В чем отличия интерфейсов IEnumerable и IEnumerator?

  • В чем заключается необходимость неизменяемости строк? (или какие преимущества неизменяемых типов над изменяемыми?)

  • Почему StringBuilder значительно опережает string по производительности при большом количестве конкатенаций?

  • Когда вызывается статический конструктор экземплярного класса?

  • В чем разница между коллекциями: Dictionary vs Hashtable, Hashtable vs HashSet, Dictionary vs Lookup?

  • Для чего механизм сборки мусора использует поколения?

  • Существует ли связь между механизмом рефлексии и метаданными сборки?

  • Как реализовать механизм Замыкания (Clojure) в C#?

Источники

Last updated

Was this helpful?