C# out、ref关键字的用法和区别
来源:互联网 发布:ps dr3插件for mac 编辑:程序博客网 时间:2024/05/19 11:50
说说自己对out、ref的认识,面试问到的几率很高哟。
out:
class Program { /* * out、ref都是引用传递,传递后使用都会改变原有的值 * out是只出不进。ref是有进有出, * * out用法,一般用于需要返回多个参数时,如在需要返回分页的数据时 同时返回总条数或者TryParse()会用到 * ref用法,一般用于在改变一个参数时,把他的改变反应到变量中 如在递归中 * */ #region Out static void Main(string[] args) { Program p = new Program(); //out传递参数时不用赋值(如果赋值也会被清空) string out_s; p.out_func(out out_s); Console.WriteLine(out_s); Console.ReadLine();//暂停窗口 } /// <summary> /// out传入后需要赋值才能返回 /// </summary> /// <param name="i"></param> public void out_func(out string s) { s = "out参数已赋值,返回。"; } #endregion }输出:
ref:
class Program { #region ref static void Main(string[] args) { Program p = new Program(); //ref传递时如果未初始化赋值 则会报错 :使用了未赋值的局部变量“ref_s” string ref_s = "已初始化。"; p.ref_func(ref ref_s); Console.WriteLine("返回的ref参数:" + ref_s); Console.ReadLine();//暂停窗口 } /// <summary> /// ref传入前需要赋值,传入后可不做操作返回原值 /// </summary> /// <param name="s"></param> public void ref_func(ref string s) { Console.WriteLine("传入的ref参数:" + s); s += "已赋值返回。"; } #endregion }输出:
总结:
- out、ref都是引用传递 (传递后改变传递的值会影响原来的值)
- out不需要初始化 需要在传入的方法内部完成初始化赋值 ref必须初始化赋值
- out用于获取函数内部的值 ref可同时改变函数内和函数外的值
0 0
- C# out、ref关键字的用法和区别
- C#关键字ref和out的区别
- C# ref 和 out ,params关键字的用法
- C# Out/Ref关键字的理解和区别
- 【学习笔记】C#中Ref和Out关键字的区别:
- C# Out/Ref关键字的理解和区别
- c#中关键字ref和out的区别
- C#中 ref和out关键字的区别
- 关于C#中的ref 和 out 关键字的区别
- C#中 ref和 out关键字的区别
- C#中ref和out关键字的区别?
- C#中关键字ref和out的区别
- C#中ref和out关键字的区别
- C#关键字params, ref, out的用法
- C# 中的ref & out关键字 的区别
- C# 关键字ref out 的区别
- ref和out关键字的用法
- ref 和 out关键字的用法
- C#目录文件监控
- lucene的丰富的各种查询(二)
- 设计模式之适配器模式
- OpenCV中CommandLineParser类
- 高通平台环境搭建,编译,系统引导流程分析
- C# out、ref关键字的用法和区别
- Dubbed Chronos单点WIFI定位
- 压缩感知(Compressive Sensing)学习
- 部署zookeeper,zkui,kafka
- 安装devstack 问题总结
- Json 笔记
- 星型模式 vs 雪花模型
- lucene的中文分词器
- MFC+opencv显示图片