C#语法小知识(二十一)ref与out
2016-11-26 22:00
423 查看
C#只能有一个返回值,当我们需要一个方法返回多个返回值的时候,可以为方法添加一个ref或者out修饰的参数。
例如:public bool TestRef(ref int i)
{
i = i + 44;
return true;
}
public bool TestOut(out int i)
{
i = 55;
return false;
}
使用:
int i = 0;
TestRef (ref i);
Console.WriteLine (i);
TestOut (out i);
Console.WriteLine (i);
ref与out区别在于,ref的实参必须先初始化才能传递,而out的实参不需要初始化。而out的形参必须当做未初始化的值来处理(例如上面的例子不能写成i+=55),并且在返回之前必须为该参数赋值。
ref和out并不作为编译时方法签名的一部分,所以下面这样是编译不过的:
class TestRefOut
{
public void SampleMethod(out int i) { i = 1; }
public void SampleMethod(ref int i) { i = 2; }
}
但是如果其中一个方法去掉out或者ref,那么便是可编译通过的。
注意:不能将ref和out用于异步方法(通过async修饰符定义)和迭代器方法(包含yield return和yield break语句)。
相关文章推荐
- C#基础知识系列一(goto、i++、三元运算符、ref和out、String和string、重载运算符)
- C#中ref和out的相关知识
- C#基础知识系列一(goto、i++、三元运算符、ref和out、String和string、重载运算符)
- .Net C#语法 方法中out和ref
- 【c#语法】占位符, out, ref
- C#基础知识系列一(goto、i++、三元运算符、ref和out、String和string、重载运算符)
- c# 基本知识 ref 和 out
- C#基础知识(七)——方法重载与out、ref、params参数
- C#中ref和out的使用小结
- *C#中使用ref和out一点认识!*
- C#中使用ref和out一点认识
- c#.net中参数修饰符ref,out ,params
- C#中ref和out的使用小结
- C#Trick&Tip: 使用 ref 与 out 传递参数的区别
- C#基础部分之语法和基础知识
- c#中ref和out的区别
- C#中ref和out的使用小结
- DEMO[C#]refKeyword and outKeyword 关于ref与out关键字区别的DEMO
- c#中out和ref的使用级区别
- c#.net中参数修饰符ref,out ,params