نواع ارجاعی
نمونه هایی از کلاس , نوع های ارجاعی می باشند . نوع های ارجاعی روی هپ تخصیص داده می شوند . در سی شارپ , همه ی کلاس ها از شی کلاس دات نت فریم ورک درون فضای نام سیستم مشتق می شوند . سی شارپ اشاره گر ها را پشتیبانی نمی کند , اما کلاس ها , انوان داده ی ارجاعی می باشند , همانند اشاره گرها . اگر تو یک اشاره گر را به اشاره گر دیگر کپی کنی , هر دوی آنها از همان شیئ ارجاع می شوند . تو می توانی محتویات شی اصلی را از درون هر یک از اشاره گر ها تغییر دهی . در سی شارپ , اگر تو یک شی کلاس را معرفی کنی و سپس از آن یک کپی بگیری , تغییرات داده شده به هر یک از نمونه های کلاس باعث تغییر شیئ اصلی می شود .
کلمه ی کلیدی نیو برای تخصیص یک نمونه از یک نوع ارجاعی (کلاس) استفاده می شود . در سی شارپ شما نیازی به آزاد سازی یک نمونه ی یک کلاس ندارید . سی ال ار روی نمونه های شی عمل زباله روبی را انجام می دهد تا بیش از این ارجاع نشوند .
بعضی اوقات متد های کلاس به نمونه های مشتق شده از شی کلاس فریم ورک نیاز دارند
سی شارپ دارای یک خصیصه است که به آن باکسینگ گفته می شوند , که به طور خودکار یک نوع مقدار را به یک نوع ارجاع هنگام نیاز به یک نوع ارجاع تبدیل می کند . به مجرد بازگشت از متد , روال معکوس که آنباکسینگ نامیده می شود , به نوع مقدار تبدیل خواهد کرد . به عنوان یک برنامه نویس , تو به انجام هیچ چیز بخصوصی برای استفاده از باکسینگ نیاز نداری . تو باید به خاطر داشته باشی که , به هر حال , بعضی از بالاسری ها در جریان روال باکسینگ / آنباکسینگ مداخله می کنند .