最佳答案
我正在尝试使用扩展方法向 C # 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
在这个上下文中是不允许的。
通过扩展方法增加操作符重载是可能的吗? 如果可能,正确的方法是什么?