第四章c#方法-参数数组和可选参数(16)

1.方法参数

在方法中,对于参数的数量无法确定的时候,就用参数数组

js 复制代码
class TestClass
{
    public void Test(int a)
    {
        Console.WriteLine(a);
    }

    public void Test(int a,int b)
    {
        Console.WriteLine(a);
        Console.WriteLine(b);
    }

    public void Test(int a, int b, int c)
    {
        Console.WriteLine(a);
        Console.WriteLine(b);
        Console.WriteLine(c);
    }
}

2.参数数组

  1. 只有一个参数数组,传入的值分别存入数组中,可以不限数量,这里数量为3
  2. 用foreach循环,把这3个数依次输出出来
  3. 并将这3个数相加再输出
js 复制代码
//只有参数数组的情况
class TestClass
{
    public void TestMethod1(params int[] a) 
    {
        int num = 0;
        foreach (var item in a) 
        {
            num += item;
            Console.WriteLine(item);//依次输出1,2,3
        }
        Console.WriteLine(num);//6
    }
}

internal class Program
{
    static void Main(string[] args)
    {
        TestClass testclass = new TestClass();
        testclass.TestMethod1(1,2,3);
    }
}
  1. 既一个参数数组,又有参数的时候,a1为第一个传入的值,后面的值依次传入参数数组中
  2. 用foreach循环,把这后面2个数依次输出出来
  3. 并将这2个数相加再输出
js 复制代码
//既有参数数组的情况,又有参数的情况
class TestClass
{
    public void TestMethod2(int a1,params int[] a) 
    {
        int num = 0;
        foreach (var item in a) 
        {
            num += item;
            Console.WriteLine(item);//依次输出2,3
        }
        Console.WriteLine(num);//5
    }
}

internal class Program
{
    static void Main(string[] args)
    {
        TestClass testclass = new TestClass();
        testclass.TestMethod2(1,2,3);
    }
}

3.可选参数

  1. 遇到一个参数,我可能会调,可能不会调用,不知道什么时候调用的情况下使用
  2. 只调用参数的时候,那么就只修改参数的值,可选参数的值不会改变
  3. 又调用参数,也调用可选参数的时候,不仅修改参数的值,而且还修改可选参数的值
js 复制代码
class TestClass
{
    public void SelectParm(int a, int b = 100) 
    {
        Console.WriteLine($"{a} {b}");
    }
}

internal class Program
{
    static void Main(string[] args)
    {
        TestClass testclass = new TestClass();
        testclass.SelectParm(1);//1 100
        testclass.SelectParm(1,2);//1 2
    }
}
相关推荐
SensorFlow6 分钟前
看板有漏斗阶段,为什么转化率仍可能是假的?用 ClickHouse 检查演示埋点
后端
LucianaiB8 分钟前
【TextIn xParse 与 Workbuddy实践】我把答辩材料丢给 AI 审了一遍,它开始追着我要证据
后端
王中阳Go14 分钟前
读者问"你用的什么 Agent":3 个 AI 员工的分工表和工具链
人工智能·后端·ai编程
BadQiang16 分钟前
Java 调用 Python 服务,报错后该从哪里查起?
后端
Hashan23 分钟前
Vibe Coding 下前后端怎么对接接口?后端不给力的兜底方案
前端·后端·vibecoding
小蒜学长30 分钟前
基于SpringBoot+Vue的小学数学智能出题系统(代码+数据库+LW)
java·数据库·spring boot·后端·智能出题系统
小朱爱编程1231 小时前
我用 Jev 做了三个实用工具:整理标签页、分诊飞书反馈、找回 GitHub 收藏
java·开发语言·人工智能·后端·python·架构·ai编程
明月_清风2 小时前
企业买了 Codex、WorkBuddy,AI 为什么还是没落地?我用 FDE + AKA 做深度定制
人工智能·后端
喵个咪2 小时前
RushWind Admin — 用 Rust 写的企业级中后台,开源了
后端·rust·开源
喵个咪2 小时前
RushWind Admin — 契约驱动:203 条路由零手写的工程化拆解
后端·rust·开源