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