c# - C# .NET 中的方法或属性之间存在歧义

标签 c#

int n = 5;
int quorum = Math.Floor(n / 2) + 1;

我希望 quorum 的值为 3。但这是我在 VisualStudio 中遇到的错误:

The call is ambiguous between the following methods or properties: 'System.Math.Floor(double)' and 'System.Math.Floor(decimal)'

如何纠正?我哪里出错了?

最佳答案

您无需使用 Math.Floor。因为您的所有项都是整数,所以 .NET 将执行整数除法,无论如何都会自动截断输出的其余部分。

至于为什么报错,上面说了整数除法的结果还是整数。因为您不能对整数进行取整(没有小数部分可以向下舍入),所以没有采用 intFloor 重载。该调用必须首先将结果转换为 decimaldouble,编译器不知道您想要哪一个(事实上,两者都不是)。

关于c# - C# .NET 中的方法或属性之间存在歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133774/

相关文章:

c# - 如何确保一个事件只被订阅一次

c# - 水平 UIStackView 居中

c# - 使用 NServiceBus 在应用程序中测试 Bus.Send

c# 如何检测特定方法是否有重载版本?

c# - 没有 IDynamicMetaObject 的 C# 中的动态?

c# - Linq2Entites Count() with condition on bool not working as "I thought it would"吗?

c# - smtp 异常 收件人失败

c# - 如何将网站翻译成另一种语言?(ASP .NET, c#)

c# - 根据公共(public)属性合并列表项

c# - ASP.NET:获取自 1/1/1970 以来的毫秒数