为什么short(-1)在c#中不等于-1

Tra*_*anQ 3 .net c# asp.net-mvc-4

在MVC4,.net 4.6.1和VS 2015中,我编写了一个简单的MVC应用程序,将一个短类型值从视图传递到控制器,就像这样

public bool GetTheValue (short req_division)
{ return req_division == -1 ;}
Run Code Online (Sandbox Code Playgroud)

奇怪的是当我从我的视图中将-1传递给req_division时,结果返回false.我不知道为什么会这样.任何人都可以帮我解释一下.非常感谢你 !

Pat*_*man 12

除了代码中可能的拼写错误之外,我在Debug View中发现了一些奇怪的东西.看到这段代码:

调试器说它是假的,但代码的计算结果为true.也许您在调试器中遇到了类型转换问题.当更改int为a时short,调试器认为毕竟是i == j评估true.

  • 这里没有使用'Equals` @JᴀʏMᴇᴇ,因此它不适用于此处.很明显,调试器在这里很糟糕,因为它不会评估代码的运行方式. (4认同)