interface فقط حاوی امضای متدها، خصوصیات، رویدادها و یا indexer ها است. یک کلاس و یا ساختار که interface را پیاده سازی می کند، باید اعضای رابطی که در قسمت تعریف رابط مشخص شده اند را پیاده سازی کند. در مثال زیر کلاس ImplementationClass باید متدی به نام SampleMethod که هیچ پارامتری ندارد و void را برمی گرداند را پیاده سازی کند.
interface ISampleInterface { void SampleMethod(); } class ImplementationClass : ISampleInterface { // پیاده سازی صریح عضو رابط void ISampleInterface.SampleMethod() { // پیاده سازی متد } static void Main() { // اعلان یک نمونه رابط ISampleInterface obj = new ImplementationClass(); // فراخوانی عضو obj.SampleMethod(); } }
رابط می تواند عضوی از namespace یا کلاس باشد و می تواند حاوی امضا های اعضای زیر باشد:
- Methods
- Properties
- Indexers
- Events
نکات مهم:
- رابط می تواند از یک یا چند رابط پایه ارث بری کند.
- وقتی لیست نوع پایه ای (در قسمت لیست وراثت کلاس) شامل یک کلاس پایه و تعدادی رابط باشد، کلاس پایه باید اول لیست باشد.
- کلاسی که یک رابط را پیاده سازی می کند، می تواند صریحا" اعضای آن رابط را پیاده سازی کند. یک عضو که بصورت صریح پیاده سازی شده باشد نمی تواند از طریق نمونه های کلاس دستیابی شود؛ ولی از طریق نمونه های رابط، می توان به آن عضو دسترسی داشت.