美文网首页
参数修饰符ref,out ,params的区别

参数修饰符ref,out ,params的区别

作者: 目标肢解 | 来源:发表于2016-06-11 23:36 被阅读0次

params

一个可以让方法(函数)的拥有可变参数的关键字。

原则:在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。


out

这是一个引用传递L。

原则一:当一个方法(函数)在使用out作为参数时,在方法中(函数)对out参数所做的任何更改都将反映在该变量中。

原则二:当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。

原则三:若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。

原则四:不必初始化作为 out 参数传递的变量,因为out 参数在进入方法(函数)时后清空自己,使自己变成一个干净的参数,也因为这个原因必须在方法返回之前为 out 参数赋值(只有地址没有值的参数是不能被.net接受的)。

原则五:属性不是变量,不能作为 out 参数传递。

原则六:如果两个方法的声明仅在 out 的使用方面不同,则会发生重载。不过,无法定义仅在 ref 和 out 方面不同的重载。


ref

ref仅仅是一个地址

原则一:当一个方法(函数)在使用ref作为参数时,在方法中(函数)对ref参数所做的任何更改都将反映在该变量中。

原则二:调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。

原则三:若要使用 ref 参数,必须将参数作为 ref 参数显式传递到方法。ref 参数的值可以被传递到 ref 参数。

原则四:ref参数传递的变量必须初始化,因为ref参数在进入方法(函数)时后还是它自己,它这个地址指向的还是原来的值,也因为这个原因ref参数也可以在使用它的方法内部不操作。

原则六:如果两种方法的声明仅在它们对 ref 的使用方面不同,则将出现重载。但是,无法定义仅在 ref 和 out 方面不同的重载


相关文章

  • 参数修饰符ref,out ,params的区别

    params 一个可以让方法(函数)的拥有可变参数的关键字。 原则:在方法声明中的 params 关键字之后不允许...

  • Unity 加载资源

    在Resources文件夹里面放入资源。加载如: 扩展方法-扩展系统组件ref 、out、params参数区别 r...

  • C# 方法参数(params、in、ref、out)

    参考转载文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/lan...

  • 17.03.12 .Net基础(三)

    out参数 out参数侧重于在函数中返回多个值 out参数要求必须在方法的内部为其赋值 ref参数 ref参数侧重...

  • C# ref & out

    1. What is ref & out ? 参数传递时按引用传递参数 2.Why need ref & out ...

  • C#参数传递,ref、out和params

    最近换工作面试,遇到了一个基础的坑,是关于C#参数传递的问题。 参数传递主要分两种,值传递和引用传递。实际C#还提...

  • 细讲C#中的ref与out的区别

    很多时候参数按地址传递时加有OUT关键字,到底他和REF有什么区别呢? 好,我们直奔主题,ref是传递参数的地址,...

  • ref 和 out

    ref:如果有ref修饰的参数那么该参数需要在传递之前初始化。 out:如果有out修饰的参数,那么该参数可以不需...

  • Unity中有关C#的几个要点

    大致总结下C#中几个常见知识点的个人理解,以对基础已经有所了解为前提。 ref/out 区别:ref参数需要在传入...

  • ref和out区别

    区别一 ref out 结果:ref那段代码顺利编译并输出 Good Luck! ,而out那段代码无法通过编译提...

网友评论

      本文标题:参数修饰符ref,out ,params的区别

      本文链接:https://www.haomeiwen.com/subject/xswcdttx.html