پرش به محتوای اصلی
رزرو مشاوره تلفنی تک جلسه‌ای با استاد رضوی
رزرو مشاوره تلفنی
کنکور کامپیوتر
0
اشتراک
 

اینترفیس در سی شارپ – Interface ها در زبان سی شارپ

این مقاله عالی به معرفی اینترفیس در سی شارپ پرداخته و سپس نکاتی پیرامون interface در #C و علت استفاده از interface در زبان #C را بررسی کرده

اینترفیس چیست‌؟

یک interface یا واسط، یک مفهومی است که به تعریف متدها بدون پیاده سازی آنها می‌پردازد، بنابراین می‌توان گفت که از یک جهت بسیار شبیه به کلاس های انتزاعی یا Abstract است. کلاس‌های مختلف می‌توانند از این اینترفیس‌ها ارث بری کنند و به پیاده سازی منطق آن بپردازند. یک interface می‌تواند شامل تعریف متد ها (Methods)، خصیصه ها (Properties) و رخداد ها (Events) باشد، اما نمی‌تواند دارای فیلد (اعضای خصوصی) باشد. استفاده از interface ها کار پیاده سازی منطق در برنامه را آسان‌تر کرده و خوانایی کد‌ها را افزایش می‌دهد. پیاده سازی منطق در interface ها یکی از اصول طراحی SOLID نیز است، همچین در برنامه نویسی شی گرا نیز به شدت مورد استفاده قرار می‌گیرد.

اینترفیس در سی شارپ

یکی از دلایل اصلی استفاده از interface در زبان #C این است که زبان سی شارپ برخلاف زبان C++‎ امکان ارث‌‌ بری چندگانه (Multiple Inheritance) ندارد و تنها از 1 کلاس می‌تواند ارث بری کند. پیاده سازی واسط (interface) در زبان #C به وسیله‌ی سینتکس رزرو شده‌ی “interface” انجام می‌پذیرد. به طور قراردادی، معمولا در زبان سی شارپ، نام interface ها را با I (آی بزرگ) شروع می‌کنند. به عنوان مثال فرض کنید می‌خواهیم یک interface برای حیوانات ایجاد کنیم، کد ایجاد این واسط (interface) به صورت زیر خواهد بود:

interface IAnimal
{
void animalSound(); // interface method (does not have a body)
}

در اینجا ما اینترفیسی با نام IAnimal ایجاد کردیم که در آن یک متد با نام animalSound وجود دارد که مقدار برگشتی آن از نوع void (یعنی متد چیزی Return نمی کند) است. همانطور که مشاهده می‌کنید، هیچ پیاده سازی برای این متد انجام نشده است زیرا اینترفیس animal یک تعریف انتزاعی است. اکنون کلاس‌های دیگر می‌توانند از این اینترفیس ارث بری کرده و به پیاده سازی متدهای آن بپردازند. به کد زیر توجه کنید:

class Cat : IAnimal
{
  public void animalSound()
  {
	// The body of animalSound() is provided here
	Console.WriteLine("Miow Miow !!");
  }
}
class Dog : IAnimal
		
{
   public void animalSound()
   {
	 // The body of animalSound() is provided here
	 Console.WriteLine("Whoof Whoof !!");
   }
}

در کد بالا دو کلاس Cat و Dog واسط IAnimal را پیاده سازی شده است، که هرکدام از این کلاس‌ها، با توجه به منطق مشخص خودشان، عملیات پیاده سازی را انجام داده‌اند. به عنوان مثال کلاس Cat صدای حیوان را به صورت Miow پیاده سازی کرده است و کلاس Dog به صورت Whoof.

اکنون اگر متد animalSound را در شی‌های ساخته شده از کلاس Cat و Dog صدا بزنیم با نتایج مختلفی روبرو می‌شویم:

internal class Program
{
  static void Main(string[] args)
  {
	Cat persianCat = new Cat();
	Dog shiba = new Dog();
	persianCat.animalSound();
	shiba.animalSound();
  }
}

خروجی این کد به صورت زیر است:

خروجی کد بالا را نمایش میدهد

توجه شود به علت اینکه کلاس‌های Cat و Dog از اینترفیس IAnimal ارث بری کرده‌اند، می‌توان مستقیما به جای ذکر کردن نام کلاس، از نام اینترفیس نیز استفاده کرد:

IAnimal persianCat = new Cat();
IAnimal shiba = new Dog();

دوره برنامه نویسی سی شارپ

C# یک زبان برنامه‌نویسی سطح بالا، ساده، پیشرفته، محبوب، پرکاربرد، بروز و زیبای دنیای کامپیوتر است. این زبان در ایران و سایر کشورهای جهان بازار کار قابل‌توجهی دارد و جزء 5 زبان برتر و پول‌ساز دنیا می‌باشد. در این دوره عالی شما بطور کامل و با زبانی ساده سی شارپ را یاد خواهید گرفت.

چه چیزهایی در این دوره یاد می‌گیرید

برنامه‌نویسی گام‌به‌گام با زبان C#
استفاده از محیط برنامه‌نویسی Visual Studio .NET 2022
برنامه‌نویسی در محیط کنسول
برنامه‌نویسی در محیط گرافیکی
اصول برنامه‌نویسی به زبان C#
استفاده از کتابخانه .NET

نمونه فیلم‌هایی از جلسات برنامه نویسی سی شارپ

خوش‌ آمد گویی و آشنایی با C#

نصب Visual Studio .NET

آشنایی با Console Application

آشنایی با Windows Form Application

متغیرها - اعداد اعشاری و ممیز شناور

دستورهای while & do while

اصلاح خطا حین اجرا

انتقال پارامترها به توابع

مدیریت حافظه

اعداد تصادفی در .NET

خوش‌ آمد گویی و آشنایی با C#
نصب Visual Studio .NET
آشنایی با Console Application
آشنایی با Windows Form Application
متغیرها - اعداد اعشاری و ممیز شناور
دستورهای while & do while
اصلاح خطا حین اجرا
انتقال پارامترها به توابع
مدیریت حافظه
اعداد تصادفی در .NET

نکاتی پیرامون interface در #C

  • در اینترفیس‌ها تنها توابع تعریف می‌شوند و هیچ پیاده سازی (Implementation) صورت نمی‌گیرد.
  • به صورت قراردادی نام‌های اینترفیس‌ها با I (آی بزرگ) شروع می‌شود.
  • همانند کلاس‌های انتزاعی یا Abstract، امکان ساخت یک شی از نوع interface وجود ندارد.
  • زمانی که یک کلاس، یک interface را پیاده سازی می‌کند، باید تمامی متد‌های تعریف شده درون آن interface را پیاده سازی کند.
  • تمامی تعاریفی که درون اینترفیس‌ها صورت می‌گیرد به صورت پیشفرض Abstract و Public هستند و به طور کلی یک interface نمی‌تواند شامل اعضای Private باشد.
  • اینترفیس‌ها نمی‌توانند دارای سازنده یا Constructor باشند.
  • یک interface می‌تواند از یک یا چند interface دیگر ارث بری (Inheritance) کند.
  • یک کلاس هیچ محدودیتی در تعداد اینترفیس‌هایی که پیاده سازی می‌کند، ندارد.

جمع بندی

اینترفیس (Interface) یکی از بخش های مهم در برنامه نویسی شی گرا است و بسیاری از اصول برنامه نویسی مانند طراحی SOLID به نوشتن برنامه‌های اینترفیس محور تاکید کرده‌اند، در این مقاله به طور کامل به بحث در مورد اینترفیس‌ها پرداختیم و با نحوه ی پیاده سازی آن آشنا شدیم، همچنین نکاتی که هنگام استفاده از اینترفیس باید به خاطر داشته باشید نیز گردآوری شده‌اند.

اینترفیس (interface) چیست‌؟

یک interface یا واسط، یک مفهومی است که به تعریف متد‌ها بدون پیاده سازی آنها می‌پردازد. بنابراین می‌توان گفت که از یک جهت بسیار شبیه به کلاس‌های انتزاعی یا Abstract است. کلاس‌های مختلف می‌توانند از این اینترفیس‌ها ارث بری کنند و به پیاده سازی منطق آن بپردازند. 

علت استفاده از interface در زبان #C چیست‌؟

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

نمونه فیلم‌های دوره‌های مهارتی

دوره‌های مهارتی رشته کامپیوتر

این مطلب چقدر به کارت آمد؟511111111115.00 از ۵ 4 رأی
اشتراک

پرسش و پاسخ داوطلبان کنکور ارشد کامپیوتر

سوال شما توسط استاد رضوی پاسخ داده می‌شود و از طریق پیامک به شما اطلاع رسانی می‌شود
×
kb
هیچ نظری ارسال شده در اینجا وجود ندارد
تلگرام اینستاگرام تماس با پشتیبانی: 09378555200 تماس با پشتیبانی: 09378555200
خدمات ما
پشتیبانی کنکور کامپیوتر

سؤالی داری؟ از ۸ صبح تا ۱۰ شب پاسخ‌گوییم.

تماس با پشتیبانی۰۹۳۷۸۵۵۵۲۰۰ پشتیبانی در تلگرامپاسخ‌گویی پیامی
شبکه‌های اجتماعی
کانال تلگرام اینستاگرام آپارات یوتیوب
اشتراک‌گذاری این مطلب

اینترفیس در سی شارپ – Interface ها در زبان سی شارپ

تلگرام واتس‌اپ ایکس
https://www.konkurcomputer.ir/اینترفیس-در-سی-شارپ.html
خدمات کنکور کامپیوتر
هر چیزی که برای قبولی لازم داری، یک‌جاخدمات ما

از مشاوره‌ی شخصی با استاد رضوی تا فیلم‌های دروس، پلتفرم‌ها و ابزارهای رایگان

مشاوره‌ی شخصی با استاد رضوی
تماس با پشتیبانی