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

سؤال: كيفية عرض بيانات حقول متعددة من كلاس؟

مغلق
بدأه ابوأنس في 26 أغسطس 2005 · 4 رد · 452 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تواجهني المشكلة التالية:

عندي كلاس وليكن خاص بالعملاء يحتوي على الاجراءات (اضافة عميل , حذف عميل , عرض بيانات عميل)

Public Class Customers
sub Add_Customer(ID as string,Name as string , Phone as string, Address as string)
            'Some Code ....
End Sub

Sub Delete_Customer(ID as string)
             'Some Code ....
End Sub

Sub Show_Info(ID as string , byref txtName as TextBox , byref txtPhone as TextBox ,byref txtAddress as TextBox)

Dim row as datarow
'---------------------------------------
'Getting Customer info into {row}
'----------------------------------------
txtName.text=row.item("Name")
txtPhone.text=row.item("Phone")
txtAddress.text=row.item("Address")

End Sub 
End Class

في الكود التالي سوف استخدم Show_Info

Dim obj as new Customers
obj.Show_Info("1234",txtName,txtPhone,txtAddress) 'sending the TextBoxs byref

لا حظ أنني في الكود في الاجراء Show_Info أرسلت مربعات النص الخاصة بإسم العميل ورقم هاتفه وعنوانه

سؤالي هو هل عملي هذا صحيح وهل هنالك طريقة آخرى لعرض بيانات بإستخدام كلاس

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

#2

أخي الكريم بالرغم من أن ما كتبته سيعمل و لكن الأسلوب خاطئ و ليس من مفاهيم البرمجة غرضية التوجه .

1- يجب عليك تعريف أعضاء للصنف و هذه الأعضاء هي البارمترات التي قمت بتمريرها إلى الطريقة Show_Info ..

2- بعد تعريف الأعضاء يجب عليك كتابة الخصائص المغلفة لهذه الأعضاء ( set, get ) .

3- يجب عليك كتابة Constructors جديدة بحيث يمكنك من خلالها تهيئة أعضاء الصنف مباشرةً عند تعريف الغرض.

4- بعد ذلك كله قم بإزالة البرامترات الموجودة في الطريقة Show_Info فأنت لم تعد بحاجة لها لأنك ستقوم بوضع القيم المطلوبة عند تعريف الغرض من الصنف Customers .

أرجو أن أكون قد أوضحت الفكرة ...

#3

شكرا لك أخي FerasGer83

ولكن ماذا سأستفيد من الConstructors

وهل أعرف أعضاء الصنف على أنها مربعات نص أو نص؟

private txtName as TextBox
private txtPhone as TextBox

'or 

private Name as string
private Phone as string

تم تعديل هذه المشاركة بواسطة W3Developer في 26 أغسطس 2005 في 19:34

#4

أخي الكريم ...

الفائدة من الـ Constructors هي تهيئة أعضاء الصنف .... و سأعطيك مثالاً عن ذلك....

لنفرض لدينا عضو من صنف يدل على الإسم و هو Name ..

عند تعريف غرض من هذا الصنف ... فإن Name سيأخذ قيمة معينة ( سنتعبر تجاوزاً أننا لا نعرفها ) ...

من المفترض أننا سنقوم بتخزين قيمة معينة في الحقل Name ثم نقوم بعرضها أو تخزينها في قاعدة البيانات و لنفترض أننا سنقوم بعرضها فقط ..

إذا لم نقم بإدخال قيمة في الحقل Name و قمنا بطباعتها ؟؟؟ ماذا سيطبع برأيك ؟؟؟

مهما كانت النتيجة فهي نتيجة غير متوقعة لأننا لم نقم بتهيئة المتحول ؟؟

ستقول لي أنه يمكننا في VB.Net تهيئته مباشرةً عند تعريفه ( خارج الـ Constructor ) .. و لكننا لن نستطيع ذلك في لغات أخرى مثل Java .. ففي و مفاهيم الـ OOP يجب أن تتم عملية التهيئة ضمن الـ Constructor لأنه يتم إستدعاؤه تلقائياً عند تعريف الغرض ...

بالنسبة لأعضاء الصنف فيجب عليك تعريفها كـ String و ليس كـ Textbox .. و لكن من خلال الـ Properties تنقل القيم الموجودة في مربعات النص و تضعها في الأعضاء ..

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…