zoukankan      html  css  js  c++  java
  • C#函数参数前的修饰符

    函数的形参前可以带三种修饰符,分别的out、ref、param。

    out:让函数可以输出“多个值”,并不是真正的输出多个值。

    ref:相当于引用传递,在函数内部赋值会影响变量的值。

    params:可变参数,当不知道数组的个数时可以方便的使用。

    一、out

    代码解析:

    1.使用格式,定义时:out 类型 形参数名。使用时:out 实参名。

    定义out参数变量时,可以不为变量赋值,因为赋值也是无用的,必须在方法内重新赋值。

    2.可以看到,调用函数后,count的值变成了3。

    3.C#7.0对out参数做了改进,目前还没有研究。

    二、ref

    1.使用格式,定义时:ref 类型 形参名。调用时:reg 实参名。

    可以看到,使用ref的变量在使用前是必须赋值的,因为函数内部可以不对其做操作。

    2.由结果可知,count的值被赋值为10086了。对普通的参数,形参值的改变是不会影响实参值的。

    三、params

    1.使用格式,定义:params 类型的数组形式(如:int[])  形参名,必须是在所有形参的结尾定义。

    2.调用时,可以不为params传递参数,此时,形参将是一个长度为0的数组,而不是NULL。

    3.可以看到,对params可变参数的赋值形式,

    a.可以不传递参数。

    b.可以使用单个的参数拼凑成数组。

    c.直接传递数组。

    4.对可变参数的操作和对数组的操作一致,只是需要对其进行判断是否传递了参数。

    5.params可变参数也是需要传递赋了值的变量。

    四、补充

    上述的三种方式都是为了函数返回多个参数值,如果对应的参数有关联性,

    可以把它们封装成一个类,这样也能达到返回多个值的效果。

  • 相关阅读:
    关于静态链接库(Lib,.A)与动态链接库(DLL,.SO)
    #pragma once
    动态链接库和静态链接库的区别
    C++编写、生成、调用动态链接库
    cmake 命令行
    Build Slicer application--Compiling and installing Slicer from source
    3DSlicer开发之路——Extensions(九)
    3DSlicer开发之路——Extensions(八)
    3DSlicer开发之路——Extensions(七)
    placeholder文字颜色与是否显示兼容性
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/6944450.html
Copyright © 2011-2022 走看看