56 lines
2.0 KiB
Markdown
56 lines
2.0 KiB
Markdown
---
|
|
title: Interface
|
|
localeTitle: جهة تعامل
|
|
---
|
|
* * *
|
|
|
|
واجهة مشابهة لفئة أو هيكل ولكن دون تنفيذ لأعضائها. تعلن الواجهة عن تعاقد أو سلوك يجب أن يتضمنه تطبيق الفئات. قد تعلن فقط الخصائص والأساليب والأحداث مع NO معدّلات الوصول.
|
|
|
|
يجب أن يتم تنفيذ جميع الأعضاء المعلنين في فئة التحكيم ، وإلا سيكون هناك خطأ في الترجمة. كالاتفاقية ، سنضع علامة على الواجهة بالحرف الأول في begenning (IMyInterface || IUserOptions). تقوم بتعريف واجهة باستخدام الكلمة الأساسية للواجهة.
|
|
|
|
جميع أعضاء الواجهة هم: مجرّد ضمنيًا ، ضمنياً ، لا يمكن الإعلان عن معدِّل وصول مثل المحمي أو الخاص الخ ...
|
|
|
|
واجهة يمكن:
|
|
|
|
* اكتساب من واجهات أخرى.
|
|
* اكتساب من واجهات متعددة في نفس الوقت
|
|
* تحتوي فقط على أساليب وخصائص وأحداث ومفهرس.
|
|
|
|
لا يمكن للواجهة:
|
|
|
|
* وراثة من فصل دراسي.
|
|
* لديك التنفيذ.
|
|
* لديك معدّلات الوصول بخلاف العام.
|
|
|
|
## \* يمكن استنساخه.
|
|
|
|
يسمح لنا استخدام الواجهات بتغيير تطبيقنا في مشروعنا دون كسر أجزاء أخرى ، ولا يتعين عليك سوى تغيير مكان واحد يتم فيه إنشاء الكائن.
|
|
|
|
مثال على واجهة:
|
|
|
|
`public Interface IUserFavoriteFood
|
|
{
|
|
void AddFood();
|
|
Task<User> EatFavoriteFood(int id);
|
|
}
|
|
`
|
|
|
|
* * *
|
|
|
|
الميراث واجهة والتنفيذ:
|
|
|
|
`public class UserHungry : IUserFavoriteFood
|
|
{
|
|
public AddFood()
|
|
{
|
|
// Implementation:
|
|
// A method to add food.
|
|
}
|
|
|
|
public Task<User> EatFavoriteFood(int id)
|
|
{
|
|
// Implementation:
|
|
// A method to Eat food by id.
|
|
}
|
|
}
|
|
` |