数组参数

在可以将数组作为函数参数传入,不必去new一个新数组

1
2
public void fn(params int[] a){}
fn({2,3,4,5,6})

只要是被params所修饰的参数,都是数组参数,数组参数必须是参数列表中最后一个

具名参数

优点:可以提高代码的可读性,可以不按照参数列表的顺序去传入参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace ArrParams2
{
class Program
{
static void Main(string[] args)
{
//使用具名参数
printf(age: 23, name: "tom");

Console.ReadLine();
}

static void printf(string name, int age)
{
Console.WriteLine("{0},{1}", name, age);
}
}
}

扩展方法(this参数)

例子:想要一个double类型的数据拥有一个Random方法
没有扩展之前

扩展之后
这里一个向下的箭头,就表示扩展方法
谁调用的该方法,谁就是该方法的第一个参数

  1. 扩展方法必须是共有的,静态的
  2. 必须是形参列表中的第一个,由this修饰
  3. 必须由一个静态类(一般类名为SomeTypeExtension)来统一收纳对类型的扩展方法

参数总结