`
jinvasshole
  • 浏览: 769891 次
文章分类
社区版块
存档分类
最新评论

out参数和ref参数的区别

 
阅读更多

out和ref都是在参数传递时,传递变量的引用。用于希望方法中多个变量值更改后,在方法调用后保留更改的值。
当一个方法需要多个返回值时,靠方法返回值就不能胜任,幸好.Net有out和ref关键字。
比如:登录方法,登录结果有成功和失败,但是如果失败还要知道原因仅靠返回值就不行了,这个就可以用out和ref
bool Login(string name,string password,ref|out string errMsg){……}
out方法参数传递前可以不赋值,但是方法中必须先赋值后使用;
ref方法参数传递前必须赋值,方法中可以直接使用。
out侧重输出(方法传递前,不知道值,调用方法后获得值),ref侧重更改(调用方法前就有明确的值,方法中发生更改)。
那么刚才登陆的例子到底用ref还是out呢?这样分析:如果成功是不需要errMsg的,如果失败调用前errMsg的实参是不需要赋值的,所以应该侧重于输出,使用out比较合适。
bool Login(string name,string password,out string errMsg){……}

分享到:
评论

相关推荐

    Ref和Out参数的例子

    关于一个Ref和Out参数的例子,更易理解Ref和Out参数

    C#中ref,out和params有什么区别

    C#中ref,out和params有什么区别 out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out ...

    C#中out参数、ref参数与值参数的用法及区别

    主要给大家介绍了关于C#中out参数、ref参数与值参数的用法及区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    C# ref和out的区别

    在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用...ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。

    Unity3D教程:ref 、out、params参数区别1

    // str is now “changed” } } 方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。ref可以把参数的数值传递

    out和ref传值的区别

    out和ref传值在方法中传值的区别

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

    但Out传递到方法体时,参数会清空,这意味着在方法体内使用Out参数前必须赋值。 而Ref传递到方法体时,其参数也是一起被传递进来,所以作为Ref参数传递,方法体中可以不对其参数赋值。 二、实例代码如下: class ...

    Ref和out关键字的区别

    out 关键字会导致参数通过引用来传递。 这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。 若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字

    ref和out的作用(txt)

    ref和out的作用 方法参数上的 ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。

    C#中的参数传递 - ref, out比较

    概括了c#中涉及到的函数/方法的参数传递方式。

    解析C#中的ref和out参数

    本文将通过实例和说明,给大家详细讲解C#中的ref和out参数。 代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace RefAndOut{ class Program { static void...

    ref与out之间的区别深入解析

    ref和out都是C#中的关键字,所实现的功能也差不多,都是指定一个参数按照引用传递。对于编译后的程序而言,它们之间没有任何区别,也就是说它们只有语法区别。总结起来,他们有如下语法区别: 1、ref传进去的参数...

    C#中ref和out的区别浅析

    因此,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢? MSDN:  ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该...

    C#方法中参数ref和out详解

    主要为大家详细介绍了C#方法中参数ref和out的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    基于params,ref,out的参数问题详解

    最近在写程序时遇到params,ref,out 参数问题。回头有自习看了看MSDN,才巩固了基础。现在和大家分享一下。paramsparams 关键字在方法成员的参数列表中使用,为该方法提供了参数个数可变的能力,它在只能出现一次...

    C#中ref和out参数使用时需要注意的问题

    此外我们还有其他向方法传递参数的形式,引用(ref)和输出(out)。  有时,我们需要改变原来变量中的值,这时,我们可以向方法传递变量的引用,而不是变量的值。引用是一个变量,他可以访问原来变量的值,修改引用...

    String int 字符串常量池 包装类型 函数参数 值传递引用传递 的 内存分配例子——源码

    public static void fun_ref (Ref_test ref_out){ Ref_test ref_in=new Ref_test(); ref_in.s1="in"; //ref_out.s1="out"; ref_out=ref_in;//漏洞!!ref_out 指向ref_in , //那么当函数退出后,ref_out就会...

    详解C#中的out和ref

    要想充分理解C# out和ref,必须先明确如下两个概念(对值类型与引用类型掌握比较好的,可以跳过“一、明确两个基本概念”) 一、明确两个基本概念 值类型:  定义:通过值的方式来传递,即实际参数向形式参数传递...

Global site tag (gtag.js) - Google Analytics