Csharp/CSharp Tutorial/Language Basics/Variable Length Parameters

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Use params to mark a parameter

using System;
using System.Collections.Generic;
using System.Text;

class Program {
    static int SumVals(params int[] vals) {
        int sum = 0;
        foreach (int val in vals) {
            sum += val;
        }
        return sum;
    }
    static void Main(string[] args) {
        int sum = SumVals(1, 5, 2, 9, 8);
        Console.WriteLine("Summed Values = {0}", sum);
    }
}

Variable-Length Parameter Lists

using System;
class MainClass
{
    public static void Main()
    {
        Write("A", "B");
        Write("A", "B", "C", 12, 14.2);
        object[] arr = new object[4];
        arr[0] = "A";
        arr[1] = "B";
        arr[2] = "C";
        arr[3] = 42;
        Write("AAA", arr);
    }
    public static void Write(string label, object arg)
    {
        WriteString(label);
        WriteString(arg.ToString());
    }
    // version with an array of object parameters
    public static void Write(string label, params object[] args)
    {
        WriteString(label);
        foreach (object o in args)
        {
            WriteString(o.ToString());
        }    
    }
    public static void WriteString(string str)
    {
        // writes string to the port here
        Console.WriteLine("Port debug: {0}", str);
    }
    
}
Port debug: A
Port debug: B
Port debug: A
Port debug: B
Port debug: C
Port debug: 12
Port debug: 14.2
Port debug: AAA
Port debug: A
Port debug: B
Port debug: C
Port debug: 42