
interface در #C:interface مثل یک قرارداد است. وقتی یک کلاس یا ساختار (struct) از یک interface استفاده میکند، موظف است تمام روشها، ویژگیها یا رویدادهای تعریفشده در آن را پیادهسازی کند.
مثال ساده:فرض کنید یک interface به نام IAnimal داریم که متد MakeSound() را تعریف میکند. هر کلاسی مثل Dog یا Cat که این interface را پیادهسازی کند، باید این متد را داشته باشد.
interface IAnimal
{
void MakeSound();
}
class Dog : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Woof!");
}
}
class Cat : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Meow!");
}
}استفاده:
IAnimal dog = new Dog();
IAnimal cat = new Cat();
dog.MakeSound(); // output: "Woof!"
cat.MakeSound(); // output: "Meow"interface IVehicle
{
int Speed { get; set; }
void Accelerate();
}
class Car : IVehicle
{
public int Speed { get; set; }
public void Accelerate()
{
Speed += 10;
}
}استفاده:
Car myCar = new Car();
myCar.Accelerate();
Console.WriteLine(myCar.Speed); // output: 10interface IFlyable
{
void Fly();
}
interface IBird : IFlyable
{
void Chirp();
}
class Sparrow : IBird
{
public void Fly()
{
Console.WriteLine("Flying!");
}
public void Chirp()
{
Console.WriteLine("Jik Jik!");
}
}استفاده:
IBird sparrow = new Sparrow();
sparrow.Fly(); // output: "Flying"
sparrow.Chirp(); // output: "Jik Jik"اینترفیس = قرارداد: هر کلاسی که از آن استفاده میکند، باید تمام اعضای آن را پیادهسازی کند.
نمیتواند بدنه داشته باشد: فقط تعریف متدها/ویژگیها (مگر از قابلیتهای جدیدتر #C استفاده شود).
چندین اینترفیس: یک کلاس میتواند چندین اینترفیس را پیادهسازی کند (مثلاً class A : I1, I2).
✅ با این مثالها و توضیحات، بهراحتی میتوانید مفهوم interface را درک و استفاده کنید!
موضوع interface (C# Reference) در سایت مایکروسافت / deepseek ai