我想知道如果我可以使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當你試圖重載運算符時,運算符重載必須包含至少一個與被傳入的類相同類型的參數。通常不會在沒有編寫的類上重載「+」或任何其他運算符。當然,你可以繼承那個類並把你的重載放在那裏。但是,當然這隻有當至少一個操作數是派生類時才起作用。坦率地說,我懷疑重載字典「+」的價值;操作員沒有明顯的意義。一個命名方法會更聰明。 –
那我怎麼可以用方法來做呢? –
你是什麼意思?您只需編寫一個方法,並帶有兩個參數,每個輸入字典一個。在你認爲是詞典的「總和」的方法中做任何事情,然後返回結果。就像其他方法一樣。 –