بایگانی

Posts Tagged ‘Optional Parameters’

Optional Parameters and Named Parameters in .NET 4.0

یکی از کمبودهایی که در C#‎ احساس میشد استفاده از Optional Parameters در تعریف یک تابع بود که معمولا با استفاده از Overloading قابل پیاده سازی بود.اما همانطور که میدانید، در NET 4.0. این امکان وجود دارد که شما بتوانید در تعریف پارمتهای یک تابع Optional Parameters را هم داشته باشید.

private void Foo(int x = 10)
{
   //Do Something
}

اما هدف اصلی معرفی Named Arguments هست که به نظر من بهترین نحوه استفاده از آن همراه با استفاده از Optional Parameters هست.
[بدون شرح]
فرض کنید یک تابع دارید با یک Required Parameter و دو Optional Parameter:

private void Foo(int x, int y = 20, int z = 30)
{
   //Do Something
}

برای اینکه این تابع را فراخوانی کنید، سه Prototype در اختیار شما قرار خواهد گرفت:
مثال *

Foo(10); // x = 10
Foo (10, 40); // x = 10, y = 40
Foo(10, 40, 50); // x = 10, y = 40, z = 50

ملاحظه میکنید که برای مقدار دهی z باید از حالت سوم استفاده بشه.شما با Named Arguments قادر خواهید بود متغیر خود رو برای مقداردهی مشخص کنید.در حالت کلی میتوانید به این صورت بنویسید(فراخوانی به صورت دو صورت زیر یک نتیجه مشابه دارد):

<

Foo(x: 10, y: 50, z: 20);
Foo(y: 50, z: 20, x: 10);

خوب با این وجود، شما برای مقدار دهی به z لزومی ندارد که از حالت سوم در مثال قبل(مثال *) استفاده کنید.یعنی شما به این صورت کار خود را انجام خواهید داد:

Foo(10, z: 50); // like: Foo(10, 20, 50);
دسته‌ها:C#.Net برچسب‌ها: , , , ,