🪄 خداحافظی با رشتههای جادویی: قدرت nameof در #C
تا حالا شده اسم یه پراپرتی رو تو یه رشته بنویسید (مثلاً برای Exceptionها یا INotifyPropertyChanged) و بعداً که اسم اون پراپرتی رو عوض میکنید، یادتون بره اون رشته رو هم آپدیت کنید و کل برنامه به باگ بخوره؟
به این رشتهها میگن "رشتههای جادویی" (Magic Strings) و یکی از منابع اصلی باگهای پنهان هستن. #C برای حل این مشکل، یه اپراتور خیلی ساده و قدرتمند داره.
1️⃣ راه حل: اپراتور nameof
اپراتور nameof اسم هرچیزی (متغیر، متد، کلاس، پراپرتی و...) رو در زمان کامپایل به یه رشته تبدیل میکنه.
مزیت اصلیش چیه؟ چک شدن در زمان کامپایل! ✅
اگه شما اسم اون متغیر یا پراپرتی رو عوض کنید (Refactor)، ویژوال استودیو به صورت خودکار تمام nameofهای مربوط به اون رو هم آپدیت میکنه و دیگه هیچوقت کد شما به خاطر یه رشته قدیمی، به باگ نمیخوره.
2️⃣ نحوه استفاده
برای متغیرهای محلی:
int userCount = 123;
string variableName = nameof(userCount); // مقدار: "userCount"
برای اعضای یک تایپ:
// برای اعضای استاتیک و غیراستاتیک کار میکنه
string lengthPropName = nameof(StringBuilder.Length); // مقدار: "Length"
// برای گرفتن اسم کامل
string fullName = nameof(StringBuilder) + "." + nameof(StringBuilder.Length);
// "StringBuilder.Length"
🔖 هشتگها:
#CleanCode #Refactoring