أعزائي في منتدى
ممكن و حد يشرح لنا interface class لو تكرمتم مع أعطاء مثال بسيط أذا أممكن مع جزيل شكر لكم :)
أعزائي في منتدى
ممكن و حد يشرح لنا interface class لو تكرمتم مع أعطاء مثال بسيط أذا أممكن مع جزيل شكر لكم :)


السلام عليكم
اضم صوتي الى صوتك اخي .. فلقد قرأت المادة ولم اتمكن منها بالكامل
شكرا
أخ أحتراف ممكن تنظيفني على مسانجر تبعك لأن في بعض مرات أكون في زنأت و أحتاج الى مساعدة و سيكون هذه شرف كبير لي
على عموم هذا هو مسنجر
yadoo86@yahoo.com
يمكنك أضافه الى ياهوو أو أم أس أن
مع شكر جزيل


السلام عليكم ورحمة الله وبركاته
سوف أحاول الشرح بعون الله وطوله وذلك بعد إذن أساتذة المنتدى
سوف نعطي مثال أولا بسيط لهذا
Public Class ClassName1
{
public void SaveFunction()
{
//Do any thing
}
public void DeleteFunction(int ch)
{
//Do any thing
}
}في هذا قمنا بتعريف Class جديد يسمى ClassName1
وبه دالتين SaveFunction ، DeleteFunction
Public Class ClassName2
{
public void SaveFunction()
{
//Do any thing
}
public void DeleteFunction(int no1)
{
//Do any thing
}
}في هذا قمنا بتعريف Class جديد يسمى ClassName2
وبه دالتين SaveFunction ، DeleteFunction وهما يقومان بعمل مختلف تماما عن ClassName1
ولهما عملهما الخاص بهما
والآن لقد لاحظنا أن نفس أسماء الدالتين في الكلاس الأول هو نفسة نفسة الموجود في الكلاس الثاني
ملحوظة : يمكن تواجد دوال أخرى في الكلاسين غير موجود في الآخر ولكننا نتكلم عن تشابة دالتين
وبالأخص أنهم نفس الأسلوب في الدالتين أي أن أحدهما SaveFunction لا تستقبل أو تقوم بإسترجاع بيانات
والأخرى تستقبل ولا تقوم بإسترجاع بيانات
ولذلك من تشابة الدالتين في الكلاسين المختلفين قمنا بإنشاء Interface
وسوف نوضح الفرق الآن
عند إستدعاء الدالة الأولى والثانية في الكلاس الأول
ClassName1 cls1 = new ClassName1(); cls1.SaveFunction(); cls1.DeleteFunction(5);
وبالمثل عند إستدعاء الدالة الأولى والثانية في الكلاس الثاني
ClassName1 cls1 = new ClassName1(); cls1.SaveFunction(); cls1.DeleteFunction(5);
فتخيلوا أننا عندنا خمسة من Classes بهما نفس إسم الدالتين
إذا 5 × 3 أسطر = 15 سطر
ولكن دعنا ننظر لهذا الجزء
Public Interface IExample
{
void SaveFunction();
DeleteFunction(int);
}ففي هذا الجزء قمنا بإنشاء Interface يسمى IExample
وقمنا بتعريف دالتين وهما
1- SaveFunction
2- DeleteFunction
والدالتين لا يقوموا إسترجاع قيم
ولكن أحدهما تستقبل متغير
ونفس الكلاسين السابقين ولكن نقوم بتغير شئ معين وهم أننا نجعل الكلاسين يرثون من الإنترفيس
Public Class ClassName1 : IExample AND Public Class ClassName2 : IExample
بعد ذلك عند إستدعاء أي دالة من الدالتين من أي كلاس لدينا وبالأخص الذين يرثون من الأنترفيس
ولا ننسى أننا يوجد لدينا كلاس ثالث وهو الذي منه يتم إستدعاء الدوال من الكلاسين السابقين وهو لا يرث من الإنترفيس
Public Class MainClass
{
Public void Main()
{
ClassName1 cls1 = new ClassName1()
FunctionName(cls1);
ClassName2 cls2 = new ClassName2()
FunctionName(cls2);
}
private FunctionName(IExample Iex)
{
Iex.SaveFunction();
Iex.DeleteFunction(5);
}
}يوجد دالة إسمها Main في الكلاس السابق والذي فائدتة أننا نستدعي الدوال الأخرى من الكلاسات السابقة
والذي منه يتم إستدعاء دالة في نفس الكلاس السابق تسمى FunctionName
والتي تقوم بإستقبال متغير من نوع IExample
ثم نقوم بإستدعاء الدوال المقصودة والمعرفة في الإنترفيس
والتي منها يتم توجيهها للدالة المقصودة في الكلاس الذي قمنا بتمريرة لدالة FunctionName
وأرجوا أنا اكون أفدت
وجزاكم الله خيرا
تم تعديل هذه المشاركة بواسطة Ahmed H. Alawady في 26 يوليو 2005 في 18:00
Name : Ahmed H. Alawady
Web Site : Alawady.info
Email : alawady_ahmed@hotmail.com
Tel : +2 012 345 6808
السلام عليكم ورحمة الله وبركاته
هذا كان موضوع طرحتة في المنتدى كنا نناقش مشكلة وتم حلها عن طريق Interface
وبها مثال جميل من كتاب "تعلم السي شارب في 21 يوم"
فيجب أن تتابعوا الموضوع من أوله بالتفصيل ليتم فهم المغزى من إستخدام interface
وجزاكم الله خيرا
Name : Ahmed H. Alawady
Web Site : Alawady.info
Email : alawady_ahmed@hotmail.com
Tel : +2 012 345 6808
السلام عليكم
بارك الله فيك أخي أحمد ، لقد تم ايضاح الصورة بشكل جميل ..
والملخص هو :
انك تمرر اسم الكلاس الى الدالة التي تقوم بدورها باستدعاء الدالة المناسبة حسب اسم الكلاس المرسل لها
بالضبط كما كنا نقوم بانشاء مؤشر يدل على دالة معينة ومن ثم نقوم باستدعائها عن طريق تمرير هذا المؤشر الى دالة أخرى .
شكرا جزيلاً
-----------------------------
أخي yadoo86 ،،،
سأقوم باضافتك ان شاء الله
السلام على من اتبع الهدى ورحمة الله وبركاته
بالطبع أخي الكريم لقد أصبت
Name : Ahmed H. Alawady
Web Site : Alawady.info
Email : alawady_ahmed@hotmail.com
Tel : +2 012 345 6808
ال Interfaces تساعدك في كسب الوقت في تصميم الكلاسات فمثلا لو كنت تريد كلاسات متعددة لنقل
كلاس أسمه Human
كلاس اسمه Cat
كلاس اسمه Car
كلاس اسمه Three
ستحاول ايجاد القواسم المشتركة بين هذه العناصر و سنتستنج في الأخير ان القواسم هي
Name
Age
Height
Creation(تعني هنا "الخلق" أو لنقل تاريخ الازدياد بالنسبة ل Human و Cat و تاريخ الصنع بالنسبة ل Car و قد لا نحتاج استعماله للشجرة لأن عمرها يمثل بعدد الدوائر في جدعها)
و بهذا يمكننا انشاء Interface فيه هذه الخصائص ووراثثه عن طريق كل كلاس جديد له نفس هذه الخصائص الشئ الذي نكسب به الوقت
مشكور على هذه مشاركات الرائعه و شرح الرائع جدا جدا جدا جدا جدا
بس كان لدي سؤال بسيط
بأي كتاب تنصحوني لتعلم
OOP


اليك هذا الرابط ستجد فيه كتاب ممتاز
مشكور
Crazy man
على هذا مشاركه الألي زي فل
بس أكو مشكله بسيطه وهي
أن هذا كتاب بالأصل من نوع
cfm
كما تعرف أن ملفات من نوع عند طبع لا تكون مثل كتاب الأصلي و أنا بصراح أحتاج هذا كتاب ضروري لذلك أطبعه
فهل لديك نسخه
مع جزيل شكر مره أخرى


من قال لك أنه chm هذا كتاب PDF
هذا الموضوع مغلق.