الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Interface class

مغلق
بدأه yadoo86 في 26 يوليو 2005 · 13 رد · 1,380 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أعزائي في منتدى

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

winter-main.jpg

6179.gif

#2

السلام عليكم

اضم صوتي الى صوتك اخي .. فلقد قرأت المادة ولم اتمكن منها بالكامل

شكرا

#3

أخ أحتراف ممكن تنظيفني على مسانجر تبعك لأن في بعض مرات أكون في زنأت و أحتاج الى مساعدة و سيكون هذه شرف كبير لي

على عموم هذا هو مسنجر

yadoo86@yahoo.com

يمكنك أضافه الى ياهوو أو أم أس أن

مع شكر جزيل

winter-main.jpg

6179.gif

#4

السلام عليكم ورحمة الله وبركاته

سوف أحاول الشرح بعون الله وطوله وذلك بعد إذن أساتذة المنتدى

سوف نعطي مثال أولا بسيط لهذا

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

#5

السلام عليكم ورحمة الله وبركاته

هذا كان موضوع طرحتة في المنتدى كنا نناقش مشكلة وتم حلها عن طريق Interface

وبها مثال جميل من كتاب "تعلم السي شارب في 21 يوم"

فيجب أن تتابعوا الموضوع من أوله بالتفصيل ليتم فهم المغزى من إستخدام interface

الموضوع هنا

وجزاكم الله خيرا

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#6

السلام عليكم

بارك الله فيك أخي أحمد ، لقد تم ايضاح الصورة بشكل جميل ..

والملخص هو :

انك تمرر اسم الكلاس الى الدالة التي تقوم بدورها باستدعاء الدالة المناسبة حسب اسم الكلاس المرسل لها

بالضبط كما كنا نقوم بانشاء مؤشر يدل على دالة معينة ومن ثم نقوم باستدعائها عن طريق تمرير هذا المؤشر الى دالة أخرى .

شكرا جزيلاً

-----------------------------

أخي yadoo86 ،،،

سأقوم باضافتك ان شاء الله

#7

السلام على من اتبع الهدى ورحمة الله وبركاته

بالطبع أخي الكريم لقد أصبت

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#8

ال Interfaces تساعدك في كسب الوقت في تصميم الكلاسات فمثلا لو كنت تريد كلاسات متعددة لنقل

كلاس أسمه Human

كلاس اسمه Cat

كلاس اسمه Car

كلاس اسمه Three

ستحاول ايجاد القواسم المشتركة بين هذه العناصر و سنتستنج في الأخير ان القواسم هي

Name

Age

Height

Creation(تعني هنا "الخلق" أو لنقل تاريخ الازدياد بالنسبة ل Human و Cat و تاريخ الصنع بالنسبة ل Car و قد لا نحتاج استعماله للشجرة لأن عمرها يمثل بعدد الدوائر في جدعها)

و بهذا يمكننا انشاء Interface فيه هذه الخصائص ووراثثه عن طريق كل كلاس جديد له نفس هذه الخصائص الشئ الذي نكسب به الوقت

#9

مشكور على هذه مشاركات الرائعه و شرح الرائع جدا جدا جدا جدا جدا

بس كان لدي سؤال بسيط

بأي كتاب تنصحوني لتعلم

OOP

winter-main.jpg

6179.gif

#11

مشكور

Crazy man

على هذا مشاركه الألي زي فل

بس أكو مشكله بسيطه وهي

أن هذا كتاب بالأصل من نوع

cfm

كما تعرف أن ملفات من نوع عند طبع لا تكون مثل كتاب الأصلي و أنا بصراح أحتاج هذا كتاب ضروري لذلك أطبعه

فهل لديك نسخه

PDF

مع جزيل شكر مره أخرى

winter-main.jpg

6179.gif

#13

أعرف و لكن أذا نظرت الى صفحات سوف تجدها من نوع

chm

مشكور أخ كريزي على هذه مشاركه

winter-main.jpg

6179.gif

#14

شرح رائع ومبسط اخ احمد جزاك الله خيرا

Eng.Hwida

Senior Software Developer

هذا الموضوع مغلق.

مواضيع مشابهة