نامیدن آرگومان ها
یکی دیگر از راههای ارسال آرگومانها استفاده از نام آنهاست. استفاده از نام آرگومانها شما را از به یاد آوری و رعایت ترتیب پارامترها هنگام ارسال آرگومانها راحت میکند. در عوض شما باید نام پارامترهای متد را به خاطر بسپارید (ولی از آن جاییکه ویژوال استودیو 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 اختصاص میدهیم. سومین و چهارمین خط کد بالا اشتباه هستند چون آرگومانهای دارای نام قبل از آرگومانهای ثابت قرار گرفتهاند. قرار گرفتن آرگومانهای دارای نام بعد از آرگومانها ثابت از بروز خطا جلوگیری میکند.
سلام, خدا قوت. خیلی مطالب عالی و منسجم ارائه شده. مممنونم از زحماتی که میکشید
سلام، بسیار ممنون از لطفتون
سایتتون خیلی خوبه. به کامنت گذاری حسودان کاری نداشته باشید و به قوت به کارتون ادامه بدید.
لطفا پرداخت حمایتی رو هم قرار بدید برای کسایی که میخوان واریز نقدی به عنوان کمک مالی داشته باشند.
تشکر و خداقوت
بسیار ممنون از لطفتون … ممنون میشم که سایت رو به دوستاتون معرفی بفرمایید
خیلی نفهم هستید که از تبلیغات دروغین و بیش از حد استفاده میکنید
اول از هر چیزی شخصیت و ادب هم چیز خوبیه
دوم چه تبلیغی کردیم و چه ضرری متوجه شما شده؟
شما دقیقا بگید کجا و به چه عنوانی چیزی گفته شده که شما میگید دروغ هست
بگید که برای کاربران شفاف سازی بشه.در غیر اینصورت شما هستید که دروغ میگویید