zoukankan      html  css  js  c++  java
  • 参数修饰符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的参数在传递之前

    不需要显式初始化。

  • 相关阅读:
    HTML5表单元素的学习
    微博账号注册
    微博三方登陆流程
    Vue发送短信逻辑
    celery异步发送短信
    celery
    celery
    jwt安装配置与原理
    图片验证
    Vue组件
  • 原文地址:https://www.cnblogs.com/DebugLZQ/p/2132415.html
Copyright © 2011-2022 走看看