کاربرد کلمه کلیدی ref در زبان سی شارپ
ref
در سیشارپ راهی است برای «ارجاعی» فرستادن یک متغیر به تابع تا بهجای کپی، خودِ مقدار اصلی در دسترس باشد؛ بنابراین هر تغییری که داخل تابع روی آن انجام شود مستقیماً روی همان متغیر بیرونی اثر میگذارد. از آن زمانی استفاده میکنیم که هم نیاز به بازگرداندن تغییرِ ایجادشده روی ورودی داریم و هم میخواهیم از هزینهٔ کپیهای اضافی (بهویژه در انواع مقداری حجیم) پرهیز کنیم. تفاوتش با «اَوت» این است که متغیر هنگام ارسال با «رف» باید از قبل مقدار داشته باشد، اما «اَوت» میتواند بدون مقدار اولیه فرستاده شود و تابع باید برایش مقدار بسازد؛ و تفاوتش با «اِن» این است که «اِن» ارجاع فقطخواندنی است و اجازهٔ تغییر نمیدهد. هنگام استفاده، به مقداردهی اولیه، طولعمر داده (ارجاع ندادن به چیزهایی که زودتر از بین میروند)، و خوانایی کد دقت میکنیم تا از خطاهای رایج دور بمانیم و واقعاً بهبود کارایی بگیریم.