#签名和重载-1
• 方法签名(signature)由方法的名称、类型形参的个数和它的每一个形参(按从左到右的顺序)的类型和种类(值、引用或输出)组成。
为了实现这些目的,形参的类型中出现的方法的任何类型形参都不是由其名称标识的,而是由它在方法的类型实参列表中的序号位置标识的。
• 需注意的是,方法签名既不包含返回类型和 params 修饰符(它可用于指定最右边的形参),也不包含可选类型形参约束。
其中params 修饰符形式为:方法修饰符 返回类型 方法名(params 类型[ ] 变量名)如:
class MyClass
{
public void F(params int[] a)
{
foreach (var item in a)
{
Console.Write(item+' ');
}
}
}
接受一维数组
与参数数组对应的实参可以是同一类型的数组名,也可以是任意多个与该数组的元素属于同一类型的变量。(若实参是数组则按引用传递,若实参是变量或表达式则按值传递)
static void Main(string[] args)
{
MyClass myClass = new MyClass();
int[] vs = { 3, 4, 6, 2, 45, 25, 2 };
int[] vs1 = { 3, 7, 9, 5, 4, 6 };
myClass.d(vs); //OK
myClass.d(1, 2, 3, 4, 5); //OK
myClass.d(vs,vs1); //错误CS1503:无法从“int[]”转换为“int”
}
不允许将params修饰符与ref和out修饰符组合起来使用
params参数必须是参数表的最后一个参数
可选类型形参约束
• 方法的返回类型和参数类型必须至少与方法本身具有同样的可访问性。



