C# out ref 用法总结
2021-07-13 21:14
标签:修改 ocs 关键字 har 微软官方 img microsoft com soscw C#里面的 out 和ref参数时常会用到,但对它们的区别比较模糊。所以总结一下。下面是测试代码: 测试结果: 总结: 1、调用带ref关键字的函数,必须对 ref 对应的参数赋值;而out关键字不需要。 2、带ref 关键字的函数内部可以直接使用 ref 对应的参数;out 关键字的函数,必须在函数内部对out对应的参数赋值后才能使用。 3、两个关键字都能使值类型按引用类型使用,即修改了函数外部申明的变量 注:更多专业介绍请参考微软官方文档 out 参数修饰符(C# 参考) https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/out-parameter-modifier ref(C# 参考) https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/ref C# out ref 用法总结 标签:修改 ocs 关键字 har 微软官方 img microsoft com soscw 原文地址:https://www.cnblogs.com/yougoo/p/9562686.html 1 public void Start()
2 {
3 //outSum没必要赋值,赋值了也完全没用。
4 //如果AddByOut函数内部直接使用out对应的参数,会报错:使用了未被赋值的 out 参数a
5 int outSum = 1;
6 int ov1 = 2;
7 int ov2 = 3;
8 AddByOut(out outSum, ov1, ov2);
9 Console.WriteLine("outSum : " + outSum + " v1: " + ov1 + " v2: " + ov2);
10
11
12 //refSum 必须赋值
13 int refSum = 1;
14 int rv1 = 2;
15 int rv2 = 3;
16 //如果refSum没有赋值,这里会报错:使用了未赋值的局部变量 refSum
17 AddByRef(ref refSum, rv1, rv2);
18 Console.WriteLine("refSum : " + refSum + " v1: " + rv1 + " v2: " + rv2);
19 }
20
21 public void AddByOut(out int a, int b, int c)
22 {
23 //a = a + b + c;// a 未被赋值,不能直接使用,即使是调用的地方 out对应的参数初始化也没用
24 a = b + c;
25 }
26
27 public void AddByRef(ref int a, int b, int c)
28 {
29 a = a + b + c; // 可以直接使用a
30 }
上一篇:C#如何通过反射调用类下的方法
下一篇:C#内存管理