Я пытаюсь использовать методы расширения для добавления перегрузки оператора в класс С# StringBuilder
. В частности, данный StringBuilder
sb
, я хотел бы, чтобы sb += "text"
стал эквивалентным sb.Append("text")
.
Вот синтаксис для создания метода расширения для StringBuilder
:
public static class sbExtensions
{
public static StringBuilder blah(this StringBuilder sb)
{
return sb;
}
}
Он успешно добавляет метод расширения blah
к StringBuilder
.
К сожалению, перегрузка оператора не работает:
public static class sbExtensions
{
public static StringBuilder operator +(this StringBuilder sb, string s)
{
return sb.Append(s);
}
}
Среди других проблем ключевое слово this
не допускается в этом контексте.
Возможно ли добавление перегрузок операторов через методы расширения? Если да, то каков правильный способ сделать это?