• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#中ref与out区别

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

首先:两者都是按地址传递的,使用后都将改变原来的数值。很多人在论坛上解释说out是按数值传递,是错误的。简单的测试后可以知道out使用也能改变数值的,所以肯定是按照地址传递的。
其次:rel可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的区别,或者说就像有的网友说的,rel是有进有出,out是只出不进。经典!!!

这是ref的用法,ref起到引用传递的作用,你可以把ref去掉看看结果

C# code
static void Main(string[] args)
{
int a = 0;
int b = 1;
Swap(ref a, ref b);
Console.WriteLine("a={0},b={1}",a,b);

}

static void Swap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}

 

这是out的用法,out起到输出参数的作用,比如下面MaxMin函数,需要返回最大值和最小值两个返回值,就不能用return返回,要用out
C# code
 
static void Main(string[] args)
{
int[] arr = { 5,3,8,1,6,9,4};
int max;
int min;
MaxMin(arr, out max,out min);
Console.WriteLine("max={0},min={1}", max, min);
}

static void MaxMin(int[] arr, out int max, out int min)
{
max = min = arr[0];
for (int i = 1; i < arr.Length; i++)
{
if (arr[i] > max) max = arr[i];
if (arr[i] < min) min = arr[i];
}
}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#字符串转换货币格式出错发布时间:2022-07-10
下一篇:
c#鼠标在控件上面,然后显示文字发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap