Kat*_*ova 8 c# double decimal ambiguous
这段代码在C#中运行得很好,尽管int可以隐式转换为double和float:
void Main()
{
int x = 7;
F(x);
}
void F(double a)
{
a.Dump("double");
}
void F(float a)
{
a.Dump("float");
}
Run Code Online (Sandbox Code Playgroud)
那么,为什么这段代码不能编译?(以下方法或属性之间的调用不明确:'UserQuery.F(double)'和'UserQuery.F(decimal)')
void Main()
{
int x = 7;
F(x);
}
void F(double a)
{
a.Dump("double");
}
void F(decimal a)
{
a.Dump("decimal");
}
Run Code Online (Sandbox Code Playgroud)
我所做的就是用float变量替换函数的decimal变体.
浮点类型和十进制类型之间没有隐式转换.
如果存在浮点数,双重签名的方法,则根据最小刻度要求确定兼容方法没有问题(将选择浮点方法).
处理浮点类型和十进制时没有这样的规则,因为double和decimal之间没有隐式优先级,必须明确指定.
| 归档时间: |
|
| 查看次数: |
810 次 |
| 最近记录: |