主函数调用
1 public static void Fun_Param() 2 { 3 int x = 1; 4 int y = 5; 5 ChangeValue(x, y); 6 //外部调用Ref函数,必须初始化变量 7 ChangeValue(ref x, ref y); 8 Console.WriteLine(string.Format("Fun_Param外部方法中:X={0},Y={1} ", x, y)); 9 10 //Out只需要定义变量,可以不初始化,但在方法中必须初始化 11 int m = 5; 12 Console.WriteLine(string.Format("Fun_Param外部方法调用Out方法前:M={0} ", m)); 13 ParamOut(out m); 14 Console.WriteLine(string.Format("Fun_Param外部方法调用Out方法后:M={0} ", m)); 15 16 //params 参数数组 17 Params(); 18 Params(10); 19 Params(10,11); 20 int[] i_Count = new int[] { 1, 2, 3, 4, 5, 6 }; 21 Params(i_Count); 22 Console.ReadKey(); 23 }
1、值参数
//值参数 回调方法时,参数值不会保存 public static void ChangeValue(int x, int y) { int Temp = x; x = y; y = Temp; Console.WriteLine(string.Format("ChangeValue函数中:X={0},Y={1} ", x, y)); }
2、ref参数
1 public static void ChangeValue(ref int x, ref int y) 2 { 3 int Temp = x; 4 x = y; 5 y = Temp; 6 Console.WriteLine(string.Format("Ref ChangeValue函数中:X={0},Y={1} ", x, y)); 7 }
3、out参数
public static void ParamOut(out int m) { m = 10; Console.WriteLine(string.Format("ParamOut方法中:M={0} ", m)); }
4、params参数
//数组型参数,长度可变 public static void Params(params int[] Count) { Console.WriteLine(string.Format("Params参数长度:Length={0}", Count.Length)); }
运行结果: