Какие инструменты в C# позволяют расширить или изменить поведение метода без модификации исходного класса?

В C# для добавления новых функций к существующим типам часто используют методы расширения (extension methods).

Короткий ответ

Что ответить на собеседовании

В C# для добавления новых функций к существующим типам часто используют методы расширения (extension methods). Это статические методы в статическом классе, которые позволяют вызывать их как будто они являются методами самого типа.

Подробный разбор

Ответ с пояснениями

В C# для добавления новых функций к существующим типам часто используют методы расширения (extension methods). Это статические методы в статическом классе, которые позволяют вызывать их как будто они являются методами самого типа.

Пример: добавим метод, который возвращает количество слов в строке:

public static class StringExtensions
{
    public static int WordCount(this string str)
    {
        if (string.IsNullOrWhiteSpace(str))
            return 0;
        return str.Split(new[] {' ', '\t', '\n'}, StringSplitOptions.RemoveEmptyEntries).Length;
    }
}

// Использование:
string text = "Привет, мир!";
int count = text.WordCount(); // count будет 2

Таким образом, можно расширять функциональность любых типов, не изменяя их исходный код.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку