zoukankan      html  css  js  c++  java
  • C#方法参数修饰符(关键字)params/in/ref/out

    为什么需要方法参数修饰符?

    方法参数修饰符为了使方法提供可变参数功能(params)和指定参数为引用传递而非值传递(in/ref/out)

    •  params 指定此参数采用可变数量的参数。
    • in 指定此参数由引用传递,但只由调用方法读取。

    • ref 指定此参数由引用传递,可能由调用方法读取或写入。

    • out 指定此参数由引用传递,由调用方法写入。

    使用 params 关键字可以指定采用数目可变的参数的方法参数。 参数类型必须是一维数组。

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

    如果 params 参数的声明类型不是一维数组,则会发生编译器错误 CS0225

    使用 params 参数调用方法时,可以传入:

    • 数组元素类型的参数的逗号分隔列表。
    • 指定类型的参数的数组。
    • 无参数。 如果未发送任何参数,则 params 列表的长度为零。

    使用in关键字标识参数作为入参,入参传入方法前必须初始化,且在方法中不能修改参数值;out关键字标识参数作为出参,不需要初始化值,方法中可修改参数值,且在方法调用时需显示使用out关键字

    如下代码:

    int readonlyArgument = 44;
    InArgExample(readonlyArgument);
    Console.WriteLine(readonlyArgument); // value is still 44

    void InArgExample(in int number)
    {
    // Uncomment the following line to see error CS8331
    //number = 19;
    }

    int initializeInMethod;
    OutArgExample(out initializeInMethod);
    Console.WriteLine(initializeInMethod); // value is now 44

    void OutArgExample(out int number)
    {
    number = 44;
    }

    本文摘抄官方文档,地址为:方法参数 - C# 参考 | Microsoft Docs

    博客备忘,一起成长。
  • 相关阅读:
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    iOS基础
    简单DP + 高精
    高精度计算
    树 (tree)
  • 原文地址:https://www.cnblogs.com/lumingprince/p/14113301.html
Copyright © 2011-2022 走看看