等于int和short c#返回false

考虑以下代码:

static int x2 = 10; public static void Main() { short y = 10; Console.WriteLine(y.Equals(x2)); //False Console.Read(); } 

为什么y.Equals(x2)返回false

Int16.Equals特定文档

回报价值

如果obj是Int16的实例并且等于此实例的值,则返回true;否则返回false。 否则,是的。


这是我的原始答案,虽然它不适用于此,但我已将其.Equals.Equals方法检查的内容。

从文档中 ,

Equals(Object)方法测试引用相等性

从文档中 ,您可以读到使用的特定过载:

返回一个值,指示此实例是否等于指定的对象。

和:

如果obj是System.Int16的实例并且等于此实例的值,则返回true;否则返回false。 否则,是的。

short不是int ,因此返回false