Похоже, вы говорите о методах расширения C #. Вы добавляете функциональность в существующие классы, вставляя ключевое слово "this" перед первым параметром. Метод должен быть статическим методом в статическом классе. В строках .NET уже есть метод «Trim», поэтому я буду использовать другой пример.
public static class MyStringEtensions
{
public static bool ContainsMabster(this string s)
{
return s.Contains("Mabster");
}
}
Так что теперь у каждой строки есть чрезвычайно полезный метод ContainsMabster, который я могу использовать так:
if ("Why hello there, Mabster!".ContainsMabster()) { /* ... */ }
Обратите внимание, что вы также можете добавить методы расширения к интерфейсам (например, IList), что означает, что любой класс, реализующий этот интерфейс, также получит этот новый метод.
Любые дополнительные параметры, которые вы объявляете в методе расширения (после первого параметра "this"), рассматриваются как обычные параметры.