2016-10-31 2 views
3

В MVC4, .net 4.6.1 и VS 2015, я написать простое приложение MVC, чтобы передать короткое значение типа из поля зрения на контроллер, как этоПочему короткий (-1) не равно -1 в C#

public bool GetTheValue (short req_division) 
{ return req_division == -1 ;} 

Странно, когда я передаю -1 в req_division из моего представления, результат вернул false. Я не знаю, почему это случилось. Может ли кто-нибудь объяснить это мне. Большое спасибо!

+1

В чем разница между 'value' и' val'? И почему оба существуют? –

+0

И, как в стороне, на основе упомянутых вами версий, вы можете использовать следующий синтаксис: 'bool GetTheValue (short val) => val == -1;' –

+0

@TranQ опубликовать свой * актуальный * код. Что беспокоит людей, нужно угадать –

ответ

12

Помимо возможной опечатки в вашем коде, я нашел что-то странное в оценке, которую делает Debug View. Смотрите этот код:

отладчик говорит, что это ложь, но код имеет значение верно. Возможно, вы столкнулись с проблемой преобразования типов в отладчике. При изменении int на short отладчик считает, что i == j оценивает true в конце концов.

+1

Ожидаемое поведение: http://stackoverflow.com/a/33362785/1017882 –

+4

Здесь '' Equals' используется здесь @ JᴀʏMᴇᴇ, поэтому он здесь не применяется. И, очевидно, отладчик здесь плохо, так как он не оценивает способ выполнения кода. –

+0

Отличные ответы на этот другой пост, кстати;) –

Смежные вопросы