Я пытаюсь использовать методы расширения для добавления перегрузки оператора к классу C# StringBuilder
. В частности, данный StringBuilder
sb
, я хотел бы sb += "text"
стать эквивалентом sb.Append("text")
.Перегрузка оператора с помощью методов расширения C#
Вот синтаксис для создания метода расширения для 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
не допускается в данном контексте.
Возможны ли перегрузки оператора посредством методов расширения? Если да, то каков правильный способ этого?
Хотя это сначала кажется классной идеей, рассмотрите var otherSb = sb + "hi"; – hatchet 2012-06-08 19:24:01