答案 0 :(得分:0)
问题:但是为什么第四个WriteLine导致使用(对象,对象)重载?
因为它是编译器的唯一选择: - )
Cannot apply operator '==' to operands of type 'System.Func<System.ICloneable>' and 'System.Func<System.IConvertable>'
候选人是:
bool==(System.Delegate, System.Delegate)
bool==(System.Func<System.ICloneable>, System.Func<System.ICloneable>)
bool==(System.Func<System.IConvertable>, System.Func<System.IConvertable>)
所以使用你的(对象,对象)是编译器找到的最佳选择。
同样适用于行动
Cannot apply operator '==' to operands of type 'System.Action<string>' and 'System.Action<System.Uri>'
候选人是:
bool==(System.Delegate, System.Delegate)
bool==(System.Action<string>, System.Action<string>)
bool==(System.Action<System.Uri>, System.Action<System.Uri>)