C#中的ref、out、params关键字
发布日期:2021-06-30 19:57:10
浏览次数:2
分类:技术文章
本文共 1338 字,大约阅读时间需要 4 分钟。
一:引用参数ref
在C#中对于值类型的参数传递,传递的都是值,但是加上ref参数后就变成了引用传递,也就是说没有ref传递的是值,有ref传递的是值的地址
using System;class Test{ //值传递 static void Swap(int x, int y) { int temp = x; x = y; y = temp; } //引用传递(ref或out参数可以进行函数重载) static void Swap(ref int x, ref int y) { int temp = x; x = y; y = temp; } static void Main() { int a = 1; int b = 2; Console.WriteLine(a + " " + b); //1 2 Swap(a, b); Console.WriteLine(a + " " + b); //1 2 Swap(ref a, ref b); Console.WriteLine(a + " " + b); //2 1 }}
二:输出参数out
out参数与ref参数一样,传递的也是值的引用
using System;class Test{ //引用传递 static void Print(out int x, out int y) { x = 10; y = 20; } static void Main() { int a = 1; int b = 2; Console.WriteLine(a + " " + b); //1 2 Print(out a, out b); Console.WriteLine(a + " " + b); //10 20 }}
out和ref的比较: ——out和ref参数传递的都是值的引用 ——使用ref参数时,传入的参数必须先初始化赋值。使用out参数时,先初始化赋值没有意义,进入函数体内会清空数值,需要在其方法体中初始化赋值 ——使用ref和out时,在方法的参数中和执行方法的参数中,都要加ref或out关键字 ——out和ref参数可以进行函数重载 ——out适合用在需要retrun多个返回值的地方,而ref用在需要引用传递的地方
三:可变参数params
函数中的可变参数多用于数组,也叫做可变参数数组,例如一个函数中需要传入一个数组,我们需要创建一个数组,再传入函数的参数中
使用函数的可变参数可以省去创建数组的过程使用可变参数需要注意: ——可变参数数组必须为形参列表的最后一个参数 ——形参列表中最多只能有一个可变参数数组 ——可变参数数组必须是一维数组 ——params参数不可以与ref、out一起使用
转载地址:https://liuhaowen.blog.csdn.net/article/details/104111074 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月27日 11时23分21秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ACM路上的一大失误
2019-04-30
HDOJ2049 不容易系列之(4)——考新郎
2019-04-30
CodeForces 248B - Chilly Willy - 找规律
2019-04-30
POJ-2418 Hardwood Species(Trie树)(map)
2019-04-30
HDU-4300 Clairewd’s message + 4333(扩展KMP)
2019-04-30
HDU 1592 Half of and a Half(高精度)
2019-04-30
POJ-3304 Segments(计算几何)
2019-04-30
UVA-11538 Chess Queen(数学)
2019-04-30
UVA-11401 Triangle Counting(数学优化)
2019-04-30
Codeforces Round #369 (Div. 2)
2019-04-30
UVA 11426 GCD - Extreme (II)(欧拉函数)
2019-04-30
HDU-2838 Cow Sorting(树状数组)
2019-04-30
POJ-2299 Ultra-QuickSort(树状数组)(离散化)
2019-04-30
基于SSM的兼职论坛系统的设计与实现
2019-04-30
基于java的图书管理系统的设计与实现
2019-04-30
基于java的SSM框架理财管理系统的设计与实现
2019-04-30
基于java的ssm框架就业信息管理系统的设计
2019-04-30
基于java的ssm框架的旅游网站设计与实现
2019-04-30