параметр params

Для того, что бы метод принимал произвольное количество аргументов, применяется ключевое слово params.
Дополнительные параметры не указываются.
Синтаксис:
params тип[] имя_массива
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • class One {
  •  public decimal Add(params decimal[] args) {
  •   decimal res=0;
  •   for(int i=0; i<args.Length; i++) {
  •    res+=args[i];
  •   }
  •   return res;
  •  }
  • }
  •  
  • class Two {
  •  decimal val;
  •  public Two(decimal arg) {
  •   val = arg;
  •  }
  •  /*неявное (автоматическое) преобразование из типа Two в тип decimal
  •  объекты будут складываться, как значения типа decimal*/
  •  public static implicit operator decimal(Two obj) {
  •   return obj.val;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   One O = new One();
  •  
  •   //передача аргументов в виде значений, разделенных запятыми
  •   Console.WriteLine(O.Add(1,2,3,4,5,6,7,8,9));
  •  
  •   decimal[] arra = new decimal[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  •   //передача аргументов в виде массива
  •   Console.WriteLine(O.Add(arra));
  •  
  •   Two T = new Two(5);
  •   //передача аргументов в виде преобразованных объектов в тип decimal
  •   Console.WriteLine(O.Add(T,T,T,T,T));
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
45
45
25