面试的时候一般很高的概率会问到ref和out的区别。。。我们死记硬背的话很难记住。

建议大家和我一样简单的探索一下。动手试一下就能记住了。

共同点是我们在使用ref或者out的时候一定要在写的方法里面的参数前面加上ref和out

调用的时候也是一样要写上的

若要使用ref或者 out 参数,方法定义和调用方法都必须显式使用 ref或者out 关键字。

 namespace test
{
class Program
{
static void Main(string[] args)
{
int k;//我们定义了一个未初始化的int变量
//定义一个初始化之后的int变量
int i = ; //ref使用的时候必须要初始化。。
//在调用方法传递未初始化的变量的时候。系统提示“使用了未赋值的局部变量k”
//Myref(ref k); //使用初始化之后的变量i试一下
Myref(ref i);//运行结果是1 //赋值一个初始化的i=1。
Myout(out i);//结果为3
//赋值一个未初始话的值k
Myout(out k);//结果为3
Console.ReadKey(); }
static public void Myref(ref int number)
{
// number = 2;当我们对number值改变的时候。。输出结果会是2
Console.WriteLine(number);
}
//如果我们不对number赋值。。会提示在控制离开当前方法之前必须对out参数赋值。
static public void Myout(out int number)
{
//我们对number赋值之后输出
number = ;
Console.WriteLine(number);
} }
}

最后得出结论。。

1.使用ref调用方法。参数必须是初始化之后的变量。

2.使用out调用方法。参数可以不初始化。也可以传递初始化的参数。

3.使用ref作为参数的方法。方法可以不对传进来的参数赋值。

4.使用out作为参数的方法。方法必须对传进来的参数进行赋值。

最新文章

  1. iOS之应用版本号的设置规则
  2. 用goto做异常处理
  3. javascript运动系列第五篇——缓冲运动和弹性运动
  4. js中的三元运算符
  5. SQL语言分类
  6. zend stuido 12.5的插件安装和xdebug调试器的配置和和配置注意
  7. centos7.0改变用户创建目录组权限
  8. Ubuntu Server搭建svn服务以及迁移方法【转】
  9. 本地wamp的Internal Server Error错误解决方法
  10. QTP自传之初识
  11. handsontable常规配置的中文API
  12. Extjs4 类的定义和扩展
  13. git 使用过程(三、文件的添加 修改)
  14. NET MVC RazorEngine 解析模板生成静态页
  15. 排序算法总结(C++版)
  16. MyBatis中批量插入数据对插入记录数的限制
  17. Hadoop 的 TotalOrderPartitioner
  18. JavaScript学习day3 (基本语法下)
  19. 关于StringUtils的常用方法
  20. 传输模型, tcp socket套接字

热门文章

  1. Linux网络编程---htons函数的使用
  2. python作业之生成随机数
  3. VS IIS 注册 以及IIS浏览提示无权限访问
  4. Spring框架的特点
  5. 大乐透 Java随机码
  6. mvn 使用
  7. SNP/单核苷酸多态性分析
  8. python不用声明数据类型
  9. 2018.09.30 bzoj2821: 作诗(Poetize)(分块)
  10. 2018.09.28 hdu5434 Peace small elephant(状压dp+矩阵快速幂)