比較結構下面就是我掙扎的簡單情況:在一個通用的方法
public bool CompareStruct<S>(S a, S b) where S : struct
{
return a == b;
}
上面不會有錯誤Operator '==' cannot be applied to operands of type 'S' and 'S'
編譯。
通常情況下,我不會感到驚訝。但我已經指出,S
是一個結構 - 所以爲什麼我不能比較這兩個參數?
我不認爲this SO question有這裏的任何相關性 - 畢竟,我與struct
類型的工作,而不是引用類型。
'其中S:IEquatable
'和'a.Equals(b)'。 –@ LasseV.Karlsen好的,這解決了「如何獲得這個編譯」。但是......爲什麼在上面的例子中'=='不能用於'struct'?編譯器不知道它能夠比較這兩個參數嗎? – Shaamaan
請參閱這篇文章:https://www.codeproject.com/Articles/1166856/Equality-Operator-equalsequals-and-Value-Types-in –