C# 中方法传值方式

1. 普通传值方式

事先定义变量,通过将变量传入到调用的方法名

//测试方法
public static void test(string name, int age, int score)
{
     Console.WriteLine("姓名:{0}, 年龄:{1},成绩:{2}", name, age, score);
}

//Main方法调用
string strName = "Lucky"; 
int iAge = 12;
int iScore = 98;
test(strName, iAge, iScore); //姓名:Lucky, 年龄:12,成绩:98
View Code

2. 通过Key-Value形式传入

 不需要定义变量,但传入的key与方法的参数名一致,value与方法参数定义的类型一致,参数的顺序可以和方法的参数顺序不一致

//测试方法
public static void test(string name, int age, int score)
{
    Console.WriteLine("姓名:{0}, 年龄:{1},成绩:{2}", name, age, score);
}

//Main方法
test(name: "Lucky", age: 12, score: 98); //参数顺序可以和方法的参数顺序不一致, 姓名:Lucky, 年龄:12,成绩:98
View Code

3. 定义方法预设默认值

 当传入的参数省略时,方法体使用默认参数值(注意:方法定义默认值的参数放在最后,多个默认值参数中间不能有非默认值的参数

//测试方法
public static void test(string name, int age = 12, int score = 98)
{
    Console.WriteLine("姓名:{0}, 年龄:{1},成绩:{2}", name, age, score);
}

//Main方法
test(name: "Lucky"); //姓名:Lucky, 年龄:12,成绩:98
test(name: "Lucky", age: 14); //姓名:Lucky, 年龄:14,成绩:98
test(name: "Lucky", age: 18, score: 88); //姓名:Lucky, 年龄:18,成绩:88
View Code

4. 不定参数Params

  • 参数数组必须是一维数组  
  • 不允许将params修饰符与ref和out修饰符组合起来使用, 且一个方法只允许有一个params修饰的参数,并且只能放在方法的最后一个参数   
  • 与参数数组对应的实参可以是同一类型的数组名,也可以是任意多个与该数组的元素属于同一类型的变量  
  • 若实参是数组则按引用传递,若实参是变量或表达式则按值传递  
  • 用法:可变的方法参数,也称数组型参数,适合于方法的参数个数不知的情况,用于传递大量的数组集合参数;当使用数组参数时,可通过使用params关键字在形参表中指定多种方法参数,并在方法的参数表中指定一个数组
//测试方法一:不带固定参数的可变参数
public static void test(params int[] list)
{
    foreach (var item in list)
    {
        Console.WriteLine(item);
    }
}

//Main方法
test(1, 2, 3); //1, 2, 3
test(new int[] { 1, 2, 3, 4 }); //1,2,3,4
View Code
//测试方法二:带固定参数的可变参数
public static void test(string name, params int[] list)
{
    foreach (var item in list)
    {
        Console.WriteLine("Name:{0}, 数值:{1}", name, item);
    }
}

//Main方法
test("Lucky", 1, 2, 3);
/*
 * Name:Lucky, 数值:1
 * Name:Lucky, 数值:2
 * Name:Lucky, 数值:3
*/

test("Lucky", new int[] { 1, 2, 3, 4 });
/*
 * Name:Lucky, 数值:1
 * Name:Lucky, 数值:2
 * Name:Lucky, 数值:3
 * Name:Lucky, 数值:4
*/
View Code
原文地址:https://www.cnblogs.com/LuckyZLi/p/12674055.html