c# – 为什么我添加了2个短片导致由于整数引起的转换编译错误?
在我的代码中,我有以下代码:
Order = config.DeploymentSteps.Select(x => x.Order).DefaultIfEmpty().Max() + 1; 这给了我错误不能隐式地将类型’int’转换为’short’.作为参考订单和x.Order都是短路,Max()正确返回一个短(我已经验证了这一点).所以我明白了,它认为1是一个整数并且错误.所以我改成了: 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 short = int.
Eric Lippert解释它here. 他说:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |