//参数列表个数相同,类型种类也相同,但是排列的次序不同,对否?
using System;namespace Example_4
{
/// <summary>
/// OverloadParameters 的摘要说明。
/// </summary>
class OverloadParameters
{
int greatest(int num1, int num2)
{
Console.WriteLine("{0} 和 {1} 中较大的数字是:", num1, num2);
if(num1 > num2)
{
return num1;
}
else
{
return num2;
}
}
int greatest(int num2,int num1,int num3)
{
Console.WriteLine("{0} 和 {1} 中较大的数字是:", num1, num2);
if(num1 > num2)
{
return num1;
}
else
{
return num2;
}
}
int greatest(int num1, int num2, int num3)
{
Console.WriteLine("{0}、{1} 和 {2} 中最大的数字是:", num1, num2, num3);

if(num1 > num2 && num1 > num3)
{
return num1;
}
else if(num2 > num1 && num2 > num3)
{
return num2;
}
else
{
return num3;
}
} /// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
OverloadParameters obj = new OverloadParameters();
Console.WriteLine(obj.greatest(22,88));
Console.WriteLine(obj.greatest(300,200,100));
}
}
}

解决方案 »

  1.   

    参数列表个数相同,类型种类也相同,但是排列的次序不同,是不对的.这样在调用时依然不能确定使用哪一个.
    正确的做法是:参数个数不同;
                 参数个数相同,但类型有至少有一个不同.
                 参数个数相同,类型也相同(至少有两种类型),排列不同.
    如:void f();
       void f(int);
       void f(int,int);
       void f(int,string);
       void f(string,int);