我看过很多关于通过更改返回类型来重载方法的帖子,但是,下面的程序在理想情况下应该可以正常工作,因为i
整数类型的变量只能保存整数值。
因此,理想情况下,它应该调用函数int print(int a)
函数,甚至不看函数,float print(int a)
因为它返回一个浮点值,并且在中main()
,我使用了一个整数变量来保存该方法返回的值,而一个整数变量永远不能保存一个浮点数价值 ..
下面的代码演示了它 →
class temp
{
public float print(int a)
{
int l=12.55;
return l;
}
public int print(int a)
{
int p=5;
return p;
}
}
class Program
{
static void Main(string[] args)
{
temp t=new temp();
int i=t.print(10);
A.Read();
}
}
在其他情况下,我会做这样的事情 →
class temp
{
public float print(int a)
{
int l=12.55;
return l;
}
public int print(int a)
{
int p=5;
return p;
}
}
class Program
{
static void Main(string[] args)
{
temp t=new temp();
float f=t.print(10);
A.Read();
}
}
在这里,我接受编译器应该生成一个错误,因为它陷入了是否调用public int(int a)
or的两难境地public float(int a)
,并且因为 float 类型的变量可以同时保存整数和浮点值..