Waq*_*qas 2 .net double overloading decimal
在.net中,我为“Add”创建了三个重载函数,参数为float、double和decimal。为什么它总是调用 double 而不是其他的?我只是想理解优先的原因。
public Form1()
{
var g = Add(4.5, 5.6);
}
public object Add(float a, float b)
{
return a + b;
}
public object Add(double a, double b)
{
return a + b;
}
public object Add(decimal a, decimal b)
{
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
因为4.5和5.6是double文字,所以该调用绑定到具有双参数的重载。
要使用浮点参数调用重载:
var g = Add(4.5f, 5.6f);
Run Code Online (Sandbox Code Playgroud)
要使用十进制参数调用重载:
var g = Add(4.5m, 5.6m);
Run Code Online (Sandbox Code Playgroud)