我正在尝试使用扩展方法向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#中重载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 [ , ] 类型的操作数,我做错了什么,我该如何解决?