Это метод расширения . Смотрите здесь объяснение .
Методы расширения позволяют разработчикам добавлять новые методы для общественности
контракт существующего типа CLR, без необходимости подкласса его или
перекомпилируйте исходный тип. Методы расширения помогают смешать
гибкость поддержки "утиной типизации", популярной в динамических языках
сегодня с проверкой производительности и времени компиляции
строго типизированные языки.
Методы расширения позволяют использовать множество полезных сценариев и помогают
возможно действительно мощная структура запросов LINQ ....
это означает, что вы можете позвонить
MyClass myClass = new MyClass();
int i = myClass.Foo();
вместо
MyClass myClass = new MyClass();
int i = Foo(myClass);
Это позволяет создавать плавные интерфейсы , как указано ниже.