等于int和short c#返回false

时间:2015-10-27 08:12:08

标签: c# .net compare equality

考虑以下代码:

static int x2 = 10;

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

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

2 个答案:

答案 0 :(得分:9)

Int16.Equals具体docs

  

返回值

     

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

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

来自docs

  

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

答案 1 :(得分:4)

the documentation,您可以读到所使用的特定过载:

  

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

  

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

short不是int,因此返回false