🛠 متدهای مدرن در #C
Expression-bodied و Local Methods
سیشارپ مدرن، پر از قابلیتهای شیک و کاربردیه که به ما کمک میکنه کدهای کوتاهتر، خواناتر و منظمتری بنویسیم. امروز با دو تا از این تکنیکهای خفن برای کار با متدها آشنا میشیم.
1️⃣ متدهای Expression-bodied (=>): خداحافظی با return و {}
اگه متد شما فقط از یک عبارت (Expression) تشکیل شده، دیگه نیازی به نوشتن بلوک {} و کلمه کلیدی return ندارید! میتونید با استفاده از "فت ارو" (=>)، اون رو در یک خط بنویسید.
این کار، کد شما رو فوقالعاده تمیز و مینیمال میکنه.
// روش قدیمی
int Double(int x)
{
return x * 2;
}
// روش مدرن و شیک با Expression-bodied
int DoubleModern(int x) => x * 2;
// این قابلیت برای متدهای void هم کار میکنه
void SayHello() => Console.WriteLine("Hello!");
2️⃣ متدهای محلی (Local Methods): متد در دل متد!
گاهی وقتا یه منطق کمکی دارید که فقط و فقط داخل یک متد دیگه استفاده میشه. به جای اینکه اون رو به عنوان یه متد private تو کل کلاس تعریف کنید و کلاس رو شلوغ کنید، میتونید اون رو به عنوان یه متد محلی، دقیقاً داخل همون متدی که بهش نیاز دارید، تعریف کنید.
مزایای این کار:
• کپسولهسازی عالی: اون متد کمکی، فقط همونجا قابل دسترسه و هیچ جای دیگهای از کلاس رو آلوده نمیکنه.
• دسترسی به متغیرهای محلی: متد محلی میتونه به متغیرهای محلی و پارامترهای متد بیرونی دسترسی داشته باشه.
void WriteCubes()
{
Console.WriteLine(Cube(3));
Console.WriteLine(Cube(4));
// این متد، فقط داخل WriteCubes قابل دسترسه
int Cube(int value) => value * value * value;
}
💡نکته حرفهای (static local methods):
از C# 8 به بعد، اگه متد محلی شما نیازی به دسترسی به متغیرهای متد بیرونی نداره، میتونید اون رو با کلمه کلیدی static تعریف کنید. این کار به کامپایلر کمک میکنه بهینهسازیهای بهتری انجام بده و جلوی دسترسیهای ناخواسته رو هم میگیره.
🤔 حرف حساب و تجربه شما
این تکنیکهای مدرن، ابزارهای شما برای نوشتن کدهایی هستن که هم کار میکنن و هم خوندنشون لذتبخشه.
شما از کدوم یکی از این قابلیتها بیشتر استفاده میکنید؟ آیا متدهای Expression-bodied جزو استایل کدنویسی شما هستن؟
🔖 هشتگها:
#CSharp #Programming #Developer #DotNet #CleanCode #ModernCSharp #BestPractices