方法签名由方法名称和一个参数列表(方法的参数个数、顺序和类型)组成。

注意:方法的签名并不包括方法的返回值和修饰符。


在C#中,同一个类中的两个或两个以上的方法可以相同的名字,只要他们的参数列表声明不同即可。在这种情况下,该方法就被称为重载(overload),这个过程称为方法重载(method overloading)。方法重载是C#最有用的特性之一。


当一个方法被调用时,C#用方法签名确定调用哪一个方法。因此,每个重载方法的参数列表必须是不同的。虽然每个重载方法可以有不同的返回类型,但是返回值类型并不足以区分所条用的是哪个方法。当C#调用一个重载方法时,参数与调用参数相匹配的那个方法会被执行。


①publicstaticintMin(inta,stringb){return1;}②publicstaticstringMin(inta,stringb)//错误提示:已经定义了一个名为Min的具有相同类型参数的成员{return"1";}③publicstaticvoidMin(inta,stringb)//错误提示:已经定义了一个名为Min的具有相同类型参数的成员{}④privatestaticintMin(inta,stringb)//错误提示:已经定义了一个名为Min的具有相同类型参数的成员{return1;}⑤publicintMin(inta,stringb)//错误提示:已经定义了一个名为Min的具有相同类型参数的成员{return1;}⑥publicstaticintAbc(inta,stringb)//方法名称不同{return1;}⑦publicstaticintMin(inta,stringb,intc)//参数列表不同{return1;}⑧publicstaticintMin(stringa,intb){return1;}⑨publicstaticintMin(stringa,charb){return1;}

①与⑥、⑦、⑧、⑨对比,我们发现他们是不同的方法; ①与②、③、④、⑤对比,我们发现他们是相同的方法。这就说明,只有两个方法的方法签名不同,才是说他们是不同的方法。