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