在C#中,方法参数列表是在定义方法时指定的,用于接收传递给方法的数据。参数列表包括参数类型和参数名。参数可以是必需的(必须有值),也可以是可选的(可以有默认值)。
方法的参数列表
1. 值参数类型(不加任何修饰符,是 默认的类型)
2. 引用型参数(以ref修饰符声明)
3. 输出型参数(以out修饰符声明)
4. 数组型参数(以params修饰符声明)
5. 只读型参数 (以in修饰符声明)
方法参数ref和out的作用
ref使用
int a = 10;Test(ref a);
Console.WriteLine(a); // 20
public static void Test(ref int a)
{
a += 10;
}
out使用
int a;
Test(ref a);
Console.WriteLine(a); // 10
public static void Test(ref int a)
{
a = 10;
}
ref 和 out 关键字的相同点和不同点
ref 和 out 关键字的相同点
1.都是通过函数参数传递的方式 ref 和 out 都是用于按引用传递参数,可以在方法内部修改传递的参数的值。
2.都可以在调用方法之前进行初始化ref 和 out 都可以在调用方法之前进行初始化,调用方法后,参数的实际值以方法内部的赋值为准。
ref 和 out 关键字的不同点
1.参数的初始化使用 ref 关键字传递参数时,参数在调用函数之前必须被初始化(赋值),而使用 out 关键字传递参数时,参数可以在调用的函数内部进行初始化。
2.方法内部的赋值使用 ref 关键字传递参数时,函数内部可以不进行赋值,而使用 out 关键字传递参数时,函数内部必须进行赋值
数组类型参数params
数组型参数类型(params类型): params 关键字可以指定在参数数目可变处采用参数的方法参数。也就是说。使用params可以自动把你传入的值按照规则转换为一个新建的数组。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
(在不确定传几个形参时也可以使用该方法)
实例 :
只读参数类型in
in参数类型只能读取不能赋值,参数在调用函数之前必须被初始化(赋值)。
给方法参数添加默认值
public void DisplayMessage(string message, int times = 1)
{
for (int i = 0; i < times; i++)
{
Console.WriteLine(message);
}
}