• 参数修饰符Params.out.ref的区别


    params一个可以让方法拥有的可变参数的关键字;
    using System;
    public class Program
    {
    static void UseParams(params int[] list)
    {
    string temp="";
    for(int i=0;i<list.Length;i++)
    {
    temp=temp+""+list[i].ToString();
    }
    Console.WriteLine(temp);
    }
    static void UseParams2(params object[] list)
    {
    string temp="";
    for(int i=0;i<list.Length;i++)
    {
    temp=temp+""+list[i].ToString();
    }
    Console.WriteLine(temp);
    }
    static void Main()
    {
    UseParams(1,2,3);//3个参数
    UseParams(1,2);//2个参数
    UseParams2(1,'a',"test");//3个参数
    int [] myarray=new int[3]{1,12,13};//数组参


    UseParams(myarray);
    int a;
    meth(out a);
    Console.WriteLine(a);
    Console.Read();
    }
    static void meth(out int i)
    {
    i=40;
    }
    }
    out--一个输出参数
    static void main()
    {
    int value;//不必初始化
    method(out value);
    Console.writeline(value);//

    }
    static void method(out int i)
    {
    i=40;
    }
    】结果等于40;
    不必初始化OUT参数传递的变量,因为OUT参数在进入方法(函数)后

    清空自己,使自己变成一个干净的参数,也因为这个原因必须在方法

    返回之前为OUT参数赋值,REF要求变量必须在传递之前进行初始化。
    Ref--仅仅是一个地址(引用参数)
    static void main()
    {
    int value;//不必初始化
    method(ref value);
    Console.writeline(value);//

    }
    static void method(ref int i)
    {
    i=40;
    }
    结果与OUT的值一样;
    Ref参数传递的变量必须初始化,因为ref参数在进入方法后还是它自

    己,它这个地址指向的还是原来的值,也因为这个原因,ref参数可

    以在使用它的方法内部不操作。这与OUT不同,OUT的参数在传递之前

    不需要显式初始化。

  • 相关阅读:
    平面切圆柱面的椭圆绘制
    抛物面倾斜体积积分
    计算误差函数的积分--erf(x)
    三棱椎的体积
    Mac平台上OpenCV开发环境搭建
    仿新浪右下角视频弹窗(视频弹出广告)播放器
    python爬虫之Scrapy 使用代理配置
    ip地址定位库
    python 使用 redis expire属性设置访问时间间隔
    如何做将两张图片合二为一
  • 原文地址:https://www.cnblogs.com/DebugLZQ/p/2132415.html
Copyright © 2020-2023  润新知