آموزش کلاس Interface در سی شارپ

ارسال شده توسط: حسین درویشی Comments: 0

آموزش کلاس Interface در سی شارپ

کلاس ها یکی از مهمترین مباحث در امر برنامه نویسی با زبان های شی گرایی هستند. استفادۀ درست از کلاس ها باعثِ خلق یک نرم افزار استاندارد خواهد شد. یکی از کلاس های مهم کلاس Interface در سی شارپ است. اینکه این کلاس چه وِیژگی هایی داشته و چه تفاوت هایی با سایرکلاس ها دارد، در ادامه مبحث آن را فراخواهید گرفت.

کلاس Interface در سی شارپ چیست؟

کلاس اینترفیس در Csharp کلاسی است که به عنوان یک رابط عمل می کند. متدهای تعریف شده در آن عملاً بدون بدنه هستند. یعنی زمانی از این کلاس استفاده می کنیم که می دانیم متدهای یک کلاس بدنۀ اولیه ندارند.

برای تعریف کلاس اینترفیس در سی شارپ باید از کلمه کلیدی interface بجای class استفاده می کنیم. بعد از کلمۀ کلیدی، نام کلاس را باید مشخص کنیم.

یک کلاس اینترفیس مانند یک قرارداد است. که این قرارداد بین یک یا چند انسان بسته می شود و آنها را مجبور می کند طبق آن قرارداد عمل کنند. کسانی که اینترفیس را پیاده سازی می کنند باید عملکردهای اعلام شده در اینترفیس را تعریف کنند. در C # ، یک کلاس یا یک ساختار می تواند یک یا چند اینترفیس را پیاده سازی کند.

اینترفیسِ IPen زیر را در نظر بگیرید که برخی عملکردهای اساسی قلم را اعلام می کند.

    interface IPen
{
string Color { get; set; }
bool Open();
bool Close();
void Write(string text);
}

نکته ی قابل توجه دیگر در کلاس interface این است که تعریف سطوح دسترسی برای پراپرتی ها و متدهای این کلاس ها امکان پذیر نیست. همه آنها اعضاء آنها بطور پیش فرض سطح دسترسی public دارند.

برای مثال اینترفیس زیر با ساختار نامعتبر تعریف شده است:

interface IPen
{
string Color { get; set; }
bool Open();
bool Close();
void Write(string text){
Console.Write(text);  //error: cannot implement method
}
}

سینتکس ارث بری یا عبارت بهتر پیاده سازی از اینترفیس ها در سی شارپ :

Syntax:  <Class or Struct Name> : <Interface Name>

برای مثال کلاس زیر را در نظر بگیرید که اینترفیسِ IPen را پیاده سازی می کند.

class Cello : IPen
{
public string Color { get; set; }
private bool isOpen = false;
public bool Close()
{
isOpen = false;
Console.WriteLine("Cello closed for writing!");
return isOpen;
}
public bool Open()
{
isOpen = true;
Console.WriteLine("Cello open for writing!");
return isOpen;
}
public void Write(string text)
{
//write text if open
if(isOpen)
Console.WriteLine("Cello: " + text);
}
}

در مثال بالا ، کلاس Cello اینترفیس IPen را پیاده سازی می کند. تمام اعضای اینترفیسِ IPen را با سطح دسترسی عمومی تعریف می کند. با این حال ، سایر اعضا غیر اینترفیسِ کلاس می توانند سطح دسترسی داشته باشند ، به عنوان مثال. isOpen یک عضو خصوصی از کلاس Cello است.

نکته :

تمام اعضای interface باید با سطح دسترسی عمومی در یک کلاس یا ساختار پیاده سازی شوند. اگر یکی از اعضاء غیر از اصلاح کننده دسترسی عمومی اعلام کرد ، C # خطای زمان کامپایل را خواهد داد.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *