zoukankan      html  css  js  c++  java
  • C# 中方法传值方式

    1. 普通传值方式

    事先定义变量,通过将变量传入到调用的方法名

    //测试方法
    public static void test(string name, int age, int score)
    {
         Console.WriteLine("姓名:{0}, 年龄:{1},成绩:{2}", name, age, score);
    }
    
    //Main方法调用
    string strName = "Lucky"; 
    int iAge = 12;
    int iScore = 98;
    test(strName, iAge, iScore); //姓名:Lucky, 年龄:12,成绩:98
    View Code

    2. 通过Key-Value形式传入

     不需要定义变量,但传入的key与方法的参数名一致,value与方法参数定义的类型一致,参数的顺序可以和方法的参数顺序不一致

    //测试方法
    public static void test(string name, int age, int score)
    {
        Console.WriteLine("姓名:{0}, 年龄:{1},成绩:{2}", name, age, score);
    }
    
    //Main方法
    test(name: "Lucky", age: 12, score: 98); //参数顺序可以和方法的参数顺序不一致, 姓名:Lucky, 年龄:12,成绩:98
    View Code

    3. 定义方法预设默认值

     当传入的参数省略时,方法体使用默认参数值(注意:方法定义默认值的参数放在最后,多个默认值参数中间不能有非默认值的参数

    //测试方法
    public static void test(string name, int age = 12, int score = 98)
    {
        Console.WriteLine("姓名:{0}, 年龄:{1},成绩:{2}", name, age, score);
    }
    
    //Main方法
    test(name: "Lucky"); //姓名:Lucky, 年龄:12,成绩:98
    test(name: "Lucky", age: 14); //姓名:Lucky, 年龄:14,成绩:98
    test(name: "Lucky", age: 18, score: 88); //姓名:Lucky, 年龄:18,成绩:88
    View Code

    4. 不定参数Params

    • 参数数组必须是一维数组  
    • 不允许将params修饰符与ref和out修饰符组合起来使用, 且一个方法只允许有一个params修饰的参数,并且只能放在方法的最后一个参数   
    • 与参数数组对应的实参可以是同一类型的数组名,也可以是任意多个与该数组的元素属于同一类型的变量  
    • 若实参是数组则按引用传递,若实参是变量或表达式则按值传递  
    • 用法:可变的方法参数,也称数组型参数,适合于方法的参数个数不知的情况,用于传递大量的数组集合参数;当使用数组参数时,可通过使用params关键字在形参表中指定多种方法参数,并在方法的参数表中指定一个数组
    //测试方法一:不带固定参数的可变参数
    public static void test(params int[] list)
    {
        foreach (var item in list)
        {
            Console.WriteLine(item);
        }
    }
    
    //Main方法
    test(1, 2, 3); //1, 2, 3
    test(new int[] { 1, 2, 3, 4 }); //1,2,3,4
    View Code
    //测试方法二:带固定参数的可变参数
    public static void test(string name, params int[] list)
    {
        foreach (var item in list)
        {
            Console.WriteLine("Name:{0}, 数值:{1}", name, item);
        }
    }
    
    //Main方法
    test("Lucky", 1, 2, 3);
    /*
     * Name:Lucky, 数值:1
     * Name:Lucky, 数值:2
     * Name:Lucky, 数值:3
    */
    
    test("Lucky", new int[] { 1, 2, 3, 4 });
    /*
     * Name:Lucky, 数值:1
     * Name:Lucky, 数值:2
     * Name:Lucky, 数值:3
     * Name:Lucky, 数值:4
    */
    View Code
  • 相关阅读:
    嵊泗
    窗函数介绍
    射频与微波测量之失真参数
    C# 文件与路径操作
    史密斯圆图
    Winform 关闭Form而不销毁Form的内存
    射频与微波测量之S参数
    东极岛
    C#中正则表达式解析字符串信息
    射频微波相关公式
  • 原文地址:https://www.cnblogs.com/LuckyZLi/p/12674055.html
Copyright © 2011-2022 走看看