params (odwołanie w C#)params (C# Reference)

Za pomocą params — słowo kluczowe, można określić parametru metody która przyjmuje zmienną liczbę argumentów.By using the params keyword, you can specify a method parameter that takes a variable number of arguments.

Możesz wysłać rozdzielana przecinkami lista argumentów o typie określonym w deklaracji parametrów lub tablice argumentów określonego typu.You can send a comma-separated list of arguments of the type specified in the parameter declaration or an array of arguments of the specified type. Możesz również wysłać bez argumentów.You also can send no arguments. Jeśli wyślesz żadnych argumentów, długość params listy wynosi zero.If you send no arguments, the length of the params list is zero.

Żadne dodatkowe parametry są dozwolone po params — słowo kluczowe w deklaracji metody i tylko jeden params słowo kluczowe jest dozwolone w deklaracji metody.No additional parameters are permitted after the params keyword in a method declaration, and only one params keyword is permitted in a method declaration.

Deklarowany typ params parametr musi być tablicy jednowymiarowej, co ilustruje poniższy przykład.The declared type of the params parameter must be a single-dimensional array, as the following example shows. W przeciwnym razie błąd kompilatora CS0225 występuje.Otherwise, a compiler error CS0225 occurs.

PrzykładExample

W poniższym przykładzie pokazano różne sposoby, w których argumenty mogą być wysyłane do params parametru.The following example demonstrates various ways in which arguments can be sent to a params parameter.

public class MyClass
{
    public static void UseParams(params int[] list)
    {
        for (int i = 0; i < list.Length; i++)
        {
            Console.Write(list[i] + " ");
        }
        Console.WriteLine();
    }

    public static void UseParams2(params object[] list)
    {
        for (int i = 0; i < list.Length; i++)
        {
            Console.Write(list[i] + " ");
        }
        Console.WriteLine();
    }

    static void Main()
    {
        // You can send a comma-separated list of arguments of the 
        // specified type.
        UseParams(1, 2, 3, 4);
        UseParams2(1, 'a', "test");

        // A params parameter accepts zero or more arguments.
        // The following calling statement displays only a blank line.
        UseParams2();

        // An array argument can be passed, as long as the array
        // type matches the parameter type of the method being called.
        int[] myIntArray = { 5, 6, 7, 8, 9 };
        UseParams(myIntArray);

        object[] myObjArray = { 2, 'b', "test", "again" };
        UseParams2(myObjArray);

        // The following call causes a compiler error because the object
        // array cannot be converted into an integer array.
        //UseParams(myObjArray);

        // The following call does not cause an error, but the entire 
        // integer array becomes the first element of the params array.
        UseParams2(myIntArray);
    }
}
/*
Output:
    1 2 3 4
    1 a test
           
    5 6 7 8 9
    2 b test again
    System.Int32[]
*/

specyfikacja języka C#C# language specification

Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#.For more information, see the C# Language Specification. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.The language specification is the definitive source for C# syntax and usage.

Zobacz takżeSee also