相关疑难解决方法(0)

运算符使用C#扩展方法重载

我正在尝试使用扩展方法向C#StringBuilder类添加一个operater重载.具体来说,给定StringBuilder sb,我想sb += "text"成为等同于sb.Append("text").

以下是为以下内容创建扩展方法的语法StringBuilder:

public static class sbExtensions
{
    public static StringBuilder blah(this StringBuilder sb)
    {
        return sb;
    }
} 
Run Code Online (Sandbox Code Playgroud)

它成功地将blah扩展方法添加到了StringBuilder.

不幸的是,运算符重载似乎不起作用:

public static class sbExtensions
{
    public static StringBuilder operator +(this StringBuilder sb, string s)
    {
        return sb.Append(s);
    }
} 
Run Code Online (Sandbox Code Playgroud)

除其他问题外,this在此上下文中不允许使用关键字.

是否可以通过扩展方法添加运算符重载?如果是这样,那么正确的方法是什么?

c# extension-methods operator-overloading

167
推荐指数
3
解决办法
4万
查看次数