小编Sam*_*yan的帖子

为什么C#编译器认为我在使用可空的long时尝试使用sbyte重载?

以下代码

long? long1 = 1;
long? long2 = 2;
Math.Min(long1.Value, long2);
Run Code Online (Sandbox Code Playgroud)

将在两个参数上导致以下错误消息:

  • "参数1:无法从'long'转换为'sbyte'"
  • "争论2:无法转换'长?' ''sbyte'"

我理解为什么这是一个错误,我知道如何解决错误.

我的问题是为什么编译器Math.Min(sbyte, sbyte)在这种情况下试图选择重载(即使第一个参数不可为空)?

4
推荐指数
1
解决办法
231
查看次数

标签 统计