В моем коде у меня есть следующий код:
Order = config.DeploymentSteps.Select(x => x.Order).DefaultIfEmpty().Max() + 1;
Это дает мне ошибку Cannot implicitly convert type 'int' to 'short'
. В качестве ссылки Order
и x.Order
оба являются шортами, а Max()
правильно возвращает short
(я это подтвердил). Итак, я понял, он думает, что 1
- это integer
и ошибка. Поэтому я изменил его на:
Order = config.DeploymentSteps.Select(x => x.Order).DefaultIfEmpty().Max() + (short)1;
Сейчас я все еще получаю ту же самую компиляцию. Так что, может быть, это не правильно, поэтому я попытался изменить его на
Order = config.DeploymentSteps.Select(x => x.Order).DefaultIfEmpty().Max() + Convert.ToInt16(1);
И все же я все еще получаю ту же ошибку. Наконец-то я получил его на работу, преобразовав все выражение:
Order = Convert.ToInt16(config.DeploymentSteps.Select(x => x.Order).DefaultIfEmpty().Max() + 1);
Почему я не могу разыграть 1 в short
и добавить его к другому короткому, не разыгрывая целое?