TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 548 subscribers
Post #64 85
🔄 ابزار حرفه‌ای #C :
تغییر متغیرها از راه دور با ref

تا حالا شده بخوای یه متغیر رو به یه متد پاس بدی و خودِ متد بتونه مقدار اصلی اون متغیر رو تغییر بده؟ به صورت پیش‌فرض این کار ممکن نیست (چون در حالت عادی، فقط یک کپی از مقدار پاس داده میشه).

اما #C یه ابزار قدرتمند برای این کار داره:
کلمه کلیدی ref.

وقتی از ref استفاده می‌کنی، دیگه کپی مقدار رو به متد نمیدی، بلکه خودِ آدرس حافظه متغیر رو بهش میدی. حالا متد و کد اصلی، هر دو به یک خانه از حافظه نگاه می‌کنن و هر تغییری، همه جا اعمال میشه.

قانون مهم: باید از کلمه کلیدی ref هم در تعریف متد و هم موقع صدا زدنش استفاده کنی. این کار باعث میشه کد کاملاً خوانا باشه و همه بفهمن که اینجا قراره متغیر اصلی تغییر کنه.

مثال کلاسیک و بهترین کاربرد ref (متد Swap):
static void Swap(ref string a, ref string b)
{
// چون a و b به متغیرهای اصلی اشاره دارن،
// هر تغییری اینجا، مستقیماً روی x و y تأثیر میذاره.
string temp = a;
a = b;
b = temp;
}

// --- نحوه استفاده ---
string x = "Penn";
string y = "Teller";

// با ref متغیرهای اصلی رو به متد می‌فرستیم
Swap(ref x, ref y);

Console.WriteLine(x); // خروجی: Teller
Console.WriteLine(y); // خروجی: Penn


🤔 حرف حساب و تجربه شما

استفاده از ref برای مواقع خاص و قدرتمندیه و به شما کنترل بیشتری روی حافظه میده.
شما تا حالا کجا از ref استفاده کردید که واقعاً به دردتون خورده باشه؟

ادامه‌ی بحث، سوالات، غر زدن‌ها و گپ و گفت‌های خودمونی، فقط تو گروه.
[پاتوق گیک های #C]

🔖 هشتگ‌ها:
#CSharp
#DotNet
#RefKeyword
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →