Как определить методы расширения в C# с примерами

Чтобы определить метод расширения в C#, выполните следующие действия:

  1. Создайте статический класс для хранения методов расширения. В этом примере назовем его «ExtensionMethods».
public static class ExtensionMethods
{
    // Define your extension methods here
}
  1. Определите статический метод внутри класса и используйте ключевое слово thisперед первым параметром, чтобы указать тип, который вы хотите расширить. Тип должен быть классом или интерфейсом.
public static class ExtensionMethods
{
    public static void MyExtensionMethod(this SomeClass obj)
    {
        // Method implementation goes here
    }
}
  1. Реализуйте свой метод расширения внутри определенного статического метода. Затем вы можете использовать метод расширения, как если бы это был метод экземпляра расширенного типа.
public static class ExtensionMethods
{
    public static void MyExtensionMethod(this SomeClass obj)
    {
        // Method implementation goes here
    }
}

Вы можете определить несколько методов расширения в одном классе, расширяя разные типы или даже один и тот же тип.

Вот несколько примеров потенциальных методов расширения:

public static class ExtensionMethods
{
    public static string ReverseString(this string str)
    {
        char[] charArray = str.ToCharArray();
        Array.Reverse(charArray);
        return new string(charArray);
    }
    public static int WordCount(this string str)
    {
        return str.Split(new char[] { ' ', '.', '?' }, StringSplitOptions.RemoveEmptyEntries).Length;
    }
    public static bool IsWeekend(this DateTime date)
    {
        return date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday;
    }
    public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> collection)
    {
        var random = new Random();
        return collection.OrderBy(item => random.Next());
    }
}