out与ref
来源:互联网 发布:如何看待网络用语 编辑:程序博客网 时间:2024/06/10 23:10
之前或许没好好学,今天认真看一下还是很清晰的
先贴段代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace template{ class Program { static void TestOut(out int num) { //此处不可以使用,因为out变量必须被赋值过一次后才可以被读取! //Console.WriteLine("Here is {0}", num); //注释掉会出错 num = 5; //同理,此处可以,因为被赋值过一次 Console.WriteLine("Here is {0}", num); } static void TestRef(ref int num) { //与out做出对比,随意用。 Console.WriteLine("Here is TestRef {0 }", num); //注释掉不会出错 num = 4; Console.WriteLine("Here is TestRef {0 }", num); } static void Main(string[] args) { int k; TestOut(out k); Console.WriteLine(k); int testRef=5; //注释掉上面的 使用 int testRef;会报错 TestRef(ref testRef); Console.WriteLine(testRef); } } }
其实区别也很明显
对于ref而言,在传参前不仅要有声明,而且要有初始化。
对于out而言,在传参前声明即可,不必须初始化。
原因是 out在使用时,在形参部分的函数中,必须被赋过一次值,才可以使用。否则编译器会报错。注意若有多个out变量就需要每一个都至少在函数中赋值过一次!
我觉得至于多个返回值什么的,其实ref和out是一样的,ref在函数中可以得到多个值,并且被改变,而out也同样可以。个人觉着不算区别。
仅个人理解,有错望纠正!
阅读全文
0 0
- 简介out与ref
- ref与out
- Ref 与 Out
- ref与out区别
- out与ref区别
- ref与out实例
- ref与out
- ref 与 out 参数
- ref与out
- c#ref与out
- ref与out区别
- ref与out
- c# ref与out
- c# out与ref
- Ref与out
- out与ref
- ref与out的区别
- ref与out之比较
- android getApplicationContext()强制转换为自定义的application时崩溃的原因
- 现在!立刻!马上!
- AOP简介
- Android外接midi设备的录音
- 修改VirtualBox虚拟机默认存储路径及虚拟机迁移方法
- out与ref
- [ZJOI2005]沼泽鳄鱼 矩乘dp
- 多校联训日记
- 安装 vim
- 手机发送短信验证码的部分代码
- jvm调优(2):Java heap space两种方法处理办法
- 在ubuntu中配置新的软件源
- VUE 样式 CSS
- html5视频播放解决方案