相关疑难解决方法(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万
查看次数

矩阵过载运算符c#

我需要的是在C#中重载Operator +所以我可以总结2个矩阵.

我有这个功能:

public int[,] operator+(int[,] matriz1, int[,] matriz2)
    {
        int[,] retorno = new int[4, 4];
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                retorno[i, j] = matriz1[i, j] + matriz2[i, j];
            }
        }
        return retorno;
    }
Run Code Online (Sandbox Code Playgroud)

当我这样做时(WT,W1,W2都是int [4,4]):

WT = W1 + W2;
Run Code Online (Sandbox Code Playgroud)

我得到一个错误说:operator +不能应用于int [ , ]和int [ , ] 类型的操作数,我做错了什么,我该如何解决?

c# overloading operators matrix

2
推荐指数
1
解决办法
3122
查看次数