کلمه کلیدی params

کلمه کلیدی params امكان ارسال تعداد دلخواه پارامترهاي همنوع و ذخیره آنها در یک آرایه ساده را فراهم می‌آورد. کد زیر طریقه استفاده از کلمه کلیدی params را نشان می‌دهد :

   1: using System;                                                                     
   2:                                                                                   
   3: public class Program                                                              
   4: {                                                                                 
   5:     static int CalculateSum(params int[] numbers)                                 
   6:     {                                                                             
   7:         int total = 0;                                                            
   8:                                                                                   
   9:         foreach (int number in numbers)                                           
  10:         {                                                                         
  11:             total += number;                                                      
  12:         }                                                                         
  13:                                                                                   
  14:         return total;                                                             
  15:     }                                                                             
  16:                                                                                   
  17:     public static void Main()                                                     
  18:     {                                                                             
  19:         Console.WriteLine("1 + 2 + 3 = {0}", CalculateSum(1, 2, 3));              
  20:                                                                                   
  21:         Console.WriteLine("1 + 2 + 3 + 4 = {0}", CalculateSum(1, 2, 3, 4));       
  22:                                                                                   
  23:         Console.WriteLine("1 + 2 + 3 + 4 + 5 = {0}", CalculateSum(1, 2, 3, 4, 5));
  24:                                                                                   
  25:     }                                                                             
  26: }
1 + 2 + 3 = 6
1 + 2 + 3 + 4 = 10
1 + 2 + 3 + 4 + 5 = 15

از کلمه کلیدی params قبل از نوع داده‌ای آرایه پارامتر استفاده می‌شود (مثال بالا). حال متد را سه بار با تعداد مختلف آرگومانها فراخوانی می‌کنیم. این آرگومانها در داخل یک پارامتر از نوع آرایه ذخیره می‌شوند. با استفاده از حلقه foreach این آرگومانها را جمع و به متد فراخوان برگشت داده می‌شود. وقتی از چندین پارامتر در یک متد استفاده می‌کنید فقط یکی از آنها باید دارای کلمه کلیدی params بوده و همچنین از لحاظ مکانی باید آخرین پارامتر باشد. اگر این پارامتر (پارامتری که دارای کلمه کلیدی params است) در آخر پارامترهای دیگر قرار نگیرد و یا از چندین پارامتر params دار استفاده کنید با خطا مواجه می‌شوید. به مثالهای اشتباه و درست زیر توجه کنید :

void SomeFunction(params int[] x, params int[] y) //ERROR

void SomeFunction(params int[] x, int y, int z) //ERROR

void SomeFunction(int x, int y, params int[] z) //Correct