Назад к вопросам
Junior
157
questionbank

Что такое метод расширения в C#?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Метод расширения (Extension Method) - это статический метод, который может быть вызван так, как будто он является методом расширяемого типа, хотя фактически он определен вне этого типа.

Основные особенности:

  • Это статический метод, объявленный в статическом классе.
  • Первый параметр метода расширения должен быть помечен ключевым словом this и указывать на тип, который вы хотите расширить.
  • Методы расширения не имеют доступа к приватным и защищенным членам расширяемого типа.
  • Они позволяют добавлять функциональность к существующим типам без изменения их исходного кода или использования наследования.

Пример создания и использования:

  1. Определение статического класса и статического метода расширения:

    public static class StringExtensions // Статический класс
    {
        public static string ToTitleCase(this string input) // Метод расширения для типа string
        {
            if (string.IsNullOrEmpty(input))
            {
                return input;
            }
            // Простая логика преобразования к Title Case
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
        }
    }
    
  2. Использование метода расширения:

    string myString = "hello world";
    string titleCaseString = myString.ToTitleCase(); // Вызов как если бы это был обычный метод string
    // titleCaseString теперь содержит "Hello World"