tgoop.com/CsharpWindowsForm/155
Last Update:
بسم الله الرحمن الرحيم
interface
اليوم ان شاء الله سوف نقوم بشرح بعض المواضيع التي تعتبر من اساسيات البرمجة
نبدأ بالواجهة (interface)
الواجهة مثل العقد. في عالم الإنسان ، يلزم العقد بين شخصين أو أكثر بالتصرف وفقًا للعقد. بنفس الطريقة ، تتضمن الواجهة الإعلان عن دالة واحدة او اكثر
يجب على الكيانات التي تنفذ الواجهة تحديد الدوال المعلنة في الواجهة
يمكن للكلاس او التركيب تنفيذ واجهة واحدة او اكثر
يتم تعريف الواجهة باستخدام الكلمة الأساسية interface
يمكن أن تحتوي الواجهات على دوال وخصائص وأحداث
مثال على الواجهة
interface aaa
{
string Color { get; set; }
bool Open();
bool Close();
void Write(string text);
}
ملاحظات :
لا يمكنك استخدام أي معدّل وصول لأي عضو في الواجهة. جميع الأعضاء بشكل افتراضي هم أعضاء عامة
interface aaa
{
public string Color { get; set; } //error
protected bool Open(); //error
private bool Close(); //error
protected internal void Write(string text);//error
}
يمكن للواجهة أن تحتوي فقط على تعريفات وليس على تطبيقات أي لايمكن عمل مثل الكود التالي
interface aaa
{
string Color { get; set; }
bool Open();
bool Close();
void Write(string text)
{
Console.Write(text); //error: cannot implement method
}
}
يمكن للكلاس او التركيب تنفيذ واجهة او اكثر باستخدام (:)
مثال
interface aaa
{
string Color { get; set; }
bool Open();
bool Close();
void Write(string text);
}
class MyClass:aaa
{
}
كذالك التركيب بنفس الطريقة السابقة
عندما تقوم بعمل نفس المثال السابق
سوف تظهر أخطاء بسبب انهو يجب عليك معالجة الدوال و الخصائص التي في الواجهة بداخل الكلاس مثل ما في الكود التالي
interface aaa
{
string Color { get; set; }
bool Open();
bool Close();
void Write(string text);
}
class MyClass:aaa
{
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);
} }
ملاحظة :
يجب معالجة جميع أعضاء الواجهة باستخدام معدل الوصول عام
مثل ما في الكود السابق
او عنطريق تنفيذ واجهة صريحة يعني تذكر اسم الواجهة قبل اسم الدالة او الخاصية في الكلاس بدون كتابة محدد وصول بهذا الشكل
string IPen.Color { get; set; }
void IPen.Write(string text)
{
}
يمكن أن تكون هناك فئات أو تراكيب متعددة تنفذ نفس الواجهة
مثال
class MyClass111:aaa
{
}
بعدا ذلك تقوم بمعالجة أعضاء الواجهة بداخل الكلاس السابق
مكنك الآن إنشاء كائنات من الفئة وتعيينها إلى متغير من نوع الواجهة
aaa ob1 = new myClass();
aaa ob2 = new myClass111();
يمكن للكلاس او التركيب تنفيذ واجهة او اكثر
مثال
class MyClass111:aaa,bbb
{
}
يمكن للواجهة ان ترث من واجهة او اكثر مثال
interface aaa:bbb
{
}
https://www.tgoop.com/CsharpWindowsForm
BY برمجة تطبيقات الويندوز C# Programming

Share with your friend now:
tgoop.com/CsharpWindowsForm/155