نامیدن آرگومان ها

یکی دیگر از راه‌های ارسال آرگومانها استفاده از نام آنهاست. استفاده از نام آرگومانها شما را از به یاد آوری و رعایت ترتیب پارامترها هنگام ارسال آرگومان‌ها راحت می‌کند. در عوض شما باید نام پارامترهای متد را به خاطر بسپارید (ولی از آن جاییکه ویژوال استودیو Intellisense دارد نیازی به این کار نیست.) استفاده از نام آرگومانها خوانایی برنامه را بالا می‌برد چون شما می‌توانید ببینید که چه مقادیری به چه پارامترهایی اختصاص داده شده است.
نامیدن آرگومانها در سی شارپ 2010 مطرح شده است و اگر شما از نسخه‌های قبلی مانند سی شارپ 2008 استفاده می‌کنید نمی‌توانید از این خاصیت استفاده کنید. در زیر نحوه استفاده از نام آرگومانها وقتی که متد فراخوانی می‌شود نشان داده شده است :

MethodToCall( paramName1: value, paramName2: value, ... paramNameN: value);

حال به مثال زیر توجه کنید :

   1: using System;
   2: 
   3: public class Program
   4: {
   5:     static void SetSalaries(decimal jack, decimal andy, decimal mark)
   6:     {
   7:         Console.WriteLine("Jack's salary is {0:C}.", jack);
   8:         Console.WriteLine("Andy's salary is {0:C}.", andy);
   9:         Console.WriteLine("Mark's salary is {0:C}.", mark);
  10:     }
  11: 
  12:     public static void Main()
  13:     {
  14:         SetSalaries(jack: 120, andy: 30, mark: 75);
  15: 
  16:         //Print a newline
  17:         Console.WriteLine();
  18: 
  19:         SetSalaries(andy: 60, mark: 150, jack: 50);
  20: 
  21:         Console.WriteLine();
  22: 
  23:         SetSalaries(mark: 35, jack: 80, andy: 150);
  24:     }
  25: }
Jack's salary is $120.
Andy's salary is $30.
Mark's salary is $75.

Jack's salary is $50.
Andy's salary is $60.
Mark's salary is $150.

Jack's salary is $80.
Andy's salary is $150.
Mark's salary is $35.

متد WriteLine() در خطوط 9-7 از فرمت پول رایج که با {0:C} نشان داده می‌شود استفاده کرده است که یک داده عددی را به نوع پولی تبدیل می‌کند. خروجی نشان می‌دهد که حتی اگر ما ترتیب آرگومانها در سه متد فراخوانی شده را تغییر دهیم مقادیر مناسب به پارامترهای مربوطه‌شان اختصاص داده می‌شود. همچنین می‌توان از آرگومانهای دارای نام و آرگومانهای ثابت (مقداری) به طور همزمان استفاده کرد به شرطی که آرگومانهای ثابت قبل از آرگومانهای دارای نام قرار بگیرند.

//Assign 30 for Jack's salary and use named arguments for
// the assignment of the other two

SetSalary(30, andy: 50, mark: 60);

// or

SetSalary(30, mark: 60, andy: 50);

//The following codes are wrong and will lead to errors

SetSalary(mark: 60, andy: 50, 30);

// and

SetSalary(mark: 60, 30, andy: 50);

همانطور که مشاهده می‌کنید ابتدا باید آرگومانهای ثابت هنگام فراخوانی متد ذکر شوند. در اولین و دومین فراخوانی در کد بالا، مقدار 30 را به عنوان اولین آرگومان به اولین پارامتر متد یعنی jack اختصاص می‌دهیم. سومین و چهارمین خط کد بالا اشتباه هستند چون آرگومانهای دارای نام قبل از آرگومانهای ثابت قرار گرفته‌اند. قرار گرفتن آرگومانهای دارای نام بعد از آرگومانها ثابت از بروز خطا جلوگیری می‌کند.