您的位置:首页 > 其它

ref和out关键字的用法与区别

2018-01-26 22:24 288 查看
这两个关键字还是很常用的,尤其是out可以用于返回多个参数。

ref:

1.ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中,联想一下浅拷贝。

2.若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字,传递到 ref 参数的参数必须最先初始化。
=》简单演示:

class Program
{
static void Main(string[] args)
{
List<int> list = new List<int>() { 1, 2, 3 };
Console.Write("调用方法之前:");
foreach (var item in list)
{
Console.Write(item+",");
}
AddList(ref list);
Console.WriteLine();
Console.Write("调用方法之后:");
foreach (var item in list)
{
Console.Write(item+",");
}
Console.ReadKey();
}
//改变list的值,但是方法没有任何返回值
static void AddList(ref List<int> list)
{
list.Add(4);
}
}


out:

1.out参数在传递之前没有必要初始化,在方法中必须赋值。

2.out的主要作用:当方法有多个返回值时,可以通过out参数来获取方法的返回值。

=》简单演示:

class Program
{
static void Main(string[] args)
{
DateTime date;//无需初始化
string dateString = "2018-01-26";
bool res = TryParse(dateString, out date);
Console.WriteLine(res);
Console.WriteLine(date);
Console.ReadKey();
}

//时间字符串转DateTime对象
static bool TryParse(string dateString, out DateTime date)
{
date = new DateTime();
try
{
date = DateTime.Parse(dateString);
return true;
}
catch
{
return false;
}
}
}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: