我想知道如果我可以使2运算符重载成一个字典总和,但即时通讯远离正确的模式做到这一点,这是我的代码。字典与运算符超载
class Program
{
static void Main(string[] args)
{
int[] array1key = new int[] { 0, 1, 3, 7 };
int[] array1values = new int[] { 5, 7, -3, 9 };
int[] array2key = new int[] { 0, 2 };
int[] array2values = new int[] { 2, 4 };
Dictionary<int, int> Polinomio1 = new Dictionary<int, int>();
Dictionary<int, int> Polinomio2 = new Dictionary<int, int>();
for (int i = 0; i < array1key.Length; i++)
{
Polinomio1.Add(array1key[i], array1values[i]);
}
for (int i = 0; i < array2key.Length; i++)
{
Polinomio2.Add(array2key[i], array2values[i]);
}
Dictionary<int, int> Sumar = Polinomio1 + Polinomio2;
}
}
class Polinomio
{
public Dictionary<int,int> Polinomio1 = new Dictionary<int,int>();
public static Dictionary<int,int> operator + (Dictionary<int,int>
Polinomio1,Dictionary<int,int> Polinomio2)
{
return Polinomio1 + Polinomio2;
}
}
由于错误消息exp当你试图重载运算符时,运算符重载必须包含至少一个与被传入的类相同类型的参数。通常不会在没有编写的类上重载“+”或任何其他运算符。当然,你可以继承那个类并把你的重载放在那里。但是,当然这只有当至少一个操作数是派生类时才起作用。坦率地说,我怀疑重载字典“+”的价值;操作员没有明显的意义。一个命名方法会更聪明。 –
那我怎么可以用方法来做呢? –
你是什么意思?您只需编写一个方法,并带有两个参数,每个输入字典一个。在你认为是词典的“总和”的方法中做任何事情,然后返回结果。就像其他方法一样。 –