Методы расширения позволяют добавлять методы в существующие типы без создания нового производного типа, перекомпиляции или иного изменения исходного типа. Методы расширения являются особым видом статического метода, но они вызываются, как если бы они были методами экземпляра.
Методы расширения определяются как статические методы, но вызываются с помощью обращения к методу экземпляра. Их первый параметр определяет, с каким типом оперирует метод, и перед параметром идет модификатор this
.
Метод расширения никогда не будет вызван, если он имеет ту же самую сигнатуру, что и метод, определенный в типе.
Создаем расширяющий метод:
static class IntegerExtension
{
public static bool IsBiggerThanZero(this int value)
{
return ((value > 0) ? true : false);
}
}
Применяем его на практике:
class Program
{
static void Main(string[] args)
{
int a = 42;
bool result = a.IsBiggerThanZero();
Console.WriteLine(result);
}
}