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