Csharp/CSharp Tutorial/Language Basics/Variable Length Parameters — различия между версиями

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

Текущая версия на 15:19, 26 мая 2010

Use params to mark a parameter

<source lang="csharp">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);
   }

}</source>

Variable-Length Parameter Lists

<source lang="csharp">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);
   }
   

}</source>

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