Вспомогательные методы - это .net способ исправления обезьян!
Скажем, у вас есть класс Foo, который кто-то где-то написал, и вы не можете его изменить. Теперь вы хотите:
var foo = new Foo();
var something = foo.NotThere();
Функция NotThere не в foo, что делать, что делать? Почему не вспомогательный метод:
static class FooHelperThingy{
static string NotThere(this Foo foo){
return "Bar!!!";
}
}
И вуаля, вы можете позвонить foo.NotThere()
. (И это работает, если у вас есть Using, указывающий на пространство имен, в котором находится вспомогательный метод.)
Параметр, помеченный как этот, будет объектом, который вы исправляете обезьяной.