首页 > 代码库 > 参数与返回值
参数与返回值
经常使用函数,下面对函数的重要内容--参数,进行一个总结
在C#中函数调用传递的参数可以分为4类:值参数、引用参数、输出参数、数组参数。下面一一对他们讲解
1.值参数(value parameter)
他就是我们经常说的型参,实质就是对实参的拷贝,并没有对实参进行操作
class Program { static void Main(string[] args) { Class1 class1 = new Class1(); class1.show("传递一个消息"); } } class Class1 { public void show(string message) { Console.WriteLine(message); Console.ReadLine(); } }
2.引用参数(reference parameter)
主要传递的是参数的引用指针,用以辅助执行传递地址的操作。意思就是传值得时候传的是地址,可以对实参进行操作,和形参的拷贝值不同。
使用ref类型参数的函数可以实现对外部传递过来的参数进行加工。
static public void Arr(ref int[] arr) { arr[0] = 100; arr[2] = 6634; arr[4] = 0; } static void Main(string[] args) { int[] arr = new int[8] { 1, 2, 3, 4, 5, 6, 7, 8 }; Arr(ref arr); for (int i = 0; i < arr.Length; i++) { Console.WriteLine(arr[i]); Console.ReadLine(); //结果是100,2,6634,4,0,6,7,8,可见引用参数把实参进进行了操作。 } }
3.输出参数(output parameter)
输出参数也是引用传递,这种参数类型在函数超过一个以上的返回值时使用。使用out关键字一般是为了让一个方法有多个返回值。
static public void Arr(out int[] arr) { //初始化数组 arr = new int[8] { 111, 112, 113, 114, 115, 116, 117, 118 }; } static void Main(string[] args) { int[] arr; Arr(out arr); for (int i = 0; i < arr.Length; i++) { Console.WriteLine(arr[i]); Console.ReadKey(); } //结果 111,112,113,114,115,116,117,118 }
通过上面的比较可以得到,ref和out传递的都是参数的地址。而他们的区别在于,数组类型的ref参数必须由调用方明确赋值,而使用数组类型的out参数前必须由定义函数先为其赋值。
ref有些类似C语言中的指针。传递参数前一定要赋值。ref不允许传递 ref string
out参数调用不必初始化,即不用赋值。而在被调用的函数内部必须至少赋值一次。但属性不能作为out参数传递。
4.数组参数(array parameter)
params 类型参数类型主要用于不知道数组长度的情况下进行函数的声明。
static public void Add(params int[] args) { int Count = 0; foreach (int a in args) { Count += a; } Console.WriteLine("0",Count); Console.ReadKey(); } static void Main(string[] args) { int[] arr = new int[8] { 1, 2, 3, 4, 5, 6, 7, 8 }; Add(arr); }
这种类型的参数在数据的连接方面有很好的效果。
参数与返回值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。