当前位置: 首页 > 编程笔记 >

C#中的out和ref关键字之间的区别

仲孙雅达
2023-03-14
本文向大家介绍C#中的out和ref关键字之间的区别,包括了C#中的out和ref关键字之间的区别的使用技巧和注意事项,需要的朋友参考一下

out关键字

out关键字用于将参数作为引用类型传递给方法,主要用于方法必须返回多个值时。ref关键字还用于将参数作为引用类型传递给方法,并且在要在方法中修改现有变量时使用。以下是C#中ref和out关键字的有效用法。

示例

using System.IO;
using System;
public class Program {
   public static void update(out int a){
      a = 10;
   }
   public static void change(ref int d){
      d = 11;
   }
   public static void Main() {
      int b;
      int c = 9;
      Program p1 = new Program();
      update(out b);
      change(ref c);
      Console.WriteLine("Updated value is: {0}", b);
      Console.WriteLine("Changed value is: {0}", c);
   }
}

输出结果

Updated value is: 10
Changed value is: 11

以下是ref和out关键字之间的一些重要区别。

序号 ref关键字 out关键字
1 目的 当调用的方法必须更新传递的参数时,将使用ref关键字。 当调用的方法必须更新传递的多个参数时,将使用out关键字。
2 方向 ref关键字用于双向传递数据。 out关键字用于单向获取数据。
3 初始化 在将变量作为ref传递之前,需要先对其进行初始化,否则html" target="_blank">编译器将引发错误。 如果使用out关键字,则无需初始化变量。
4 初始化 在被调用的方法中,不需要初始化作为ref传递的参数。 在被调用的方法中,需要初始化作为out传递的参数。
 类似资料:
  • 本文向大家介绍详解C#中三个关键字params,Ref,out,包括了详解C#中三个关键字params,Ref,out的使用技巧和注意事项,需要的朋友参考一下 关于这三个关键字之前可以研究一下原本的一些操作 观察运行结果发现 值并没有被改变,也就是说此时的操作的原理可能也是跟以前C语言的函数操作是一样的 本文主要讨论params关键字,ref关键字,out关键字。   1)params关键字,官方

  • 本文向大家介绍详解C#中的out和ref,包括了详解C#中的out和ref的使用技巧和注意事项,需要的朋友参考一下 要想充分理解C# out和ref,必须先明确如下两个概念(对值类型与引用类型掌握比较好的,可以跳过“一、明确两个基本概念”) 一、明确两个基本概念 值类型:  定义:通过值的方式来传递,即实际参数向形式参数传递(关于形参和实参术语,这里不定义)。  存储方式:主要在栈中。  本质:通

  • 问题内容: 关键字和之间有什么区别? 两者都用来访问类的构造函数吧?你们任何人都可以解释吗? 问题答案: 让我们考虑这种情况 输出将是 第三行正在打印“ animal:eat”,因为我们正在调用。如果我们调用,它将被打印为“ dog:eat”。

  • 问题内容: 有人可以举例说明在ElasticSearch中关键字和文本之间的区别吗? 问题答案: 关键字 类型:如果您将一个字段定义为像这样的关键字类型。 然后,当您对该字段进行搜索查询时,您必须插入整个值(关键字搜索),即关键字字段。 当您执行这样的搜索时: 它将不匹配任何文档。您必须搜索整个词“洗衣机”。 *另一方面,将分析 *文本 类型,您可以使用字段值中的标记进行搜索。 全文搜索 : 和搜

  • 本文向大家介绍C#中out与ref的区别实例解析,包括了C#中out与ref的区别实例解析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中Out与Ref的区别,可以加深C#程序设计人员对Out和Ref用法的理解,具体分析如下: 一、区别分析: Out和Ref作为参数传递到方法体中,所传递的都是引用地址,两者在操作上本身没有区别。 但Out传递到方法体时,参数会清空,这意味着在方法体内

  • 本文向大家介绍C#中参数传递 ref 与 out 的区别?相关面试题,主要包含被问及C#中参数传递 ref 与 out 的区别?时的应答技巧和注意事项,需要的朋友参考一下 (1)ref指定的参数在函数调用时必须先初始化,而out不用 (2)out指定的参数在进入函数时会清空自己,因此必须在函数内部进行初始化赋值操作,而ref不用 总结:ref可以把值传到方法里,也可以把值传到方法外;out只可以把