C#中out与ref的区别实例解析

作者:shichen2014 时间:2022-01-27 13:29:09 

本文实例讲述了C#中Out与Ref的区别,可以加深C#程序设计人员对Out和Ref用法的理解,具体分析如下:

一、区别分析:

Out和Ref作为参数传递到方法体中,所传递的都是引用地址,两者在操作上本身没有区别。

但Out传递到方法体时,参数会清空,这意味着在方法体内使用Out参数前必须赋值。

而Ref传递到方法体时,其参数也是一起被传递进来,所以作为Ref参数传递,方法体中可以不对其参数赋值。

二、实例代码如下:


class Program
{
 /*ref是有进有出,out是只出不进*/
 static void Main(string[] args)
 {
   /*作为Out参数传递 传递前可以不初始化*/
   string outString = "This is the outString value";
   Console.WriteLine(outString);
   outMethod(out outString);
   Console.WriteLine(outString);

/*作为Ref参数传递 传递前必须初始化*/
   string refString = "This is the refString value";
   Console.WriteLine(refString);
   refMethod(ref refString);
   Console.WriteLine(refString);
   Console.ReadLine();

}
 static bool outMethod(out string str)
 {
   /*作为Out参数传递 传递到方法体后 参数被清空*/
   //Console.WriteLine(str); Use of unassigned out parameter 'str'
   /*作为Out参数传递 值必须在方法体内赋值*/
   /*作为Out参数传递 返回前值必须初始化*/
   str = "This is the new outString value";
   return true;
 }
 static bool refMethod(ref string str)
 {
   Console.WriteLine(str);
   /*作为Ref参数传递 返回前值可以不初始化*/
   return true;
 }
}

希望本文所述实例对大家C#程序设计有一定的帮助。

标签:C#,out,ref,区别
0
投稿

猜你喜欢

  • 基于Springboot一个注解搞定数据字典的实践方案

    2022-12-23 01:12:38
  • 解决SpringMVC、tomcat、Intellij idea、ajax中文乱码问题

    2023-10-20 10:16:23
  • C# WinForm制作异形窗体与控件的方法

    2023-11-07 11:09:28
  • 一文告诉你为什么要重写hashCode()方法和equals()方法

    2021-09-05 07:05:55
  • java中Statement 与 PreparedStatement接口之间的关系和区别

    2023-11-25 03:11:11
  • java中申请不定长度数组ArrayList的方法

    2023-02-24 17:37:37
  • 浅谈java中Math.random()与java.util.random()的区别

    2023-11-26 16:37:16
  • mybatis-plus 如何判断参数是否为空并作为查询条件

    2022-09-14 22:05:03
  • Spring Boot启动端口修改方法

    2022-11-21 19:37:53
  • Spring(AbstractRoutingDataSource)实现动态数据源切换示例

    2022-05-23 07:05:08
  • volatile与happens-before的关系与内存一致性错误

    2021-12-13 20:25:37
  • java如何对map进行排序详解(map集合的使用)

    2022-12-22 18:26:13
  • SpringMVC @RequestBody出现400 Bad Request的解决

    2021-10-18 11:50:50
  • java使用jdbc操作数据库示例分享

    2023-10-29 13:54:21
  • SpringMVC整合mybatis实例代码

    2022-09-24 08:22:03
  • Java异常处理中的一些特殊情况举例

    2021-10-11 20:31:54
  • Java源码解析HashMap成员变量

    2023-04-24 07:20:22
  • java 工厂模式的实例详解

    2023-11-28 08:48:57
  • java入门概念个人理解之package与import浅析

    2021-07-09 10:18:55
  • Maven引入本地Jar包并打包进War包中的方法

    2023-06-16 12:43:28
  • asp之家 软件编程 m.aspxhome.com