-
传值参数
传值参数会新建一个存储位置保存传入参数的数据作为副本,方法调用其副本的存储位置引用类型的传值参数:由于引用类型变量保存的是对应堆空间的地址。故在方法内部对副本对应的堆空间进行修改会影响实参。而如果使用new操作符不会影响实参变量而会使副本指向new开辟的堆空间
值类型的传值参数:在方法内部对其赋值不会影响实参,只会修改副本的存储位置对应的数据 -
输出参数
用out修饰的声明,不会新建存储位置,在方法返回后,会直接对输出参数对应存储空间数据进行修改值类型输出参数:方法返回后,直接对实参数据进行输出覆盖
引用类型输出参数:同理。同时如果在方法内部new出一个对象也会将其堆空间的地址返回并覆盖给实参 -
引用参数
用 ref 修饰声明,不会新建存储位置,使方法直接调用实参变量的存储位置值类型引用参数:方法内部可以直接修改对应的实参数据
引用类型的引用参数:方法内部即使使用new操作符也会影响实参,使其指向new开辟的堆空间 -
数组参数
声明时,必须时形参列表的最后一个,且由 params 修饰当调用该方法时,可以直接输入数组元素作为参数供方法调用,不需要先定义一个数组
-
具名参数
参数的位置不受约束
调用方法时,用 形参名:实参 的方式 调用
eg:
class Program
{
static void Main()
{
PrintLine(age:17, name:"zhubajie");
}
void PrintMessage(string name, int age)
{
Console.WriteLine("I'm {0}, I'm already {1}", name, age);
}
}
- 可选参数
参数具有默认值,而变得可选
声明参数时为参数赋值作为默认值, 在调用方法时可以不为该参数赋值 - 扩展方法(this参数)
为目标数据类型追加方法