تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الحادي والعشرون - الوراثة Inheritance
#7
ال Casting :

يقصد بال Casting عموماً هو التحويل من نوع إلى آخر .

والآن سنحاول تطبيق نفس المفاهيم على ال Classes ، الطريقة الأولى للتحويل هي استخدام (cast) العادية ، مثلاً لو قمنا بتعريف سيارة BMW :

c#:

كود :
BMW ahmedCar=new BMW();
vb.net:

كود :
Dim ahmedCar As New BMW()
وقمنا بارسال المتغير إلى دالة تقوم باستقبال BMW فسوف تعمل بصورة صحيحة ، ايضاً لو قمنا بارسالها إلى دالة تستقبل Car فسيكون هذا صحيحا لإن كل BMW هي في الحقيقة Car ، بينما العملية العكسية ليست صحيحة .

النقطة الثانية لو قمنا بتعريف BMW بالصورة التالية :

C#:

كود :
Car ahmedCar=new BMW();
vb.net:

كود :
Dim ahmedCar As Car = New BMW()
هذا الموضوع صحيح فعلاً وهو ما يدعى باسم implicit cast ، والآن يمكن ارسال المتغير مباشرة إلى تلك الدالة التي تستقبل Car .

لنفترض مثالاً آخر قمنا فيه بتعريف BMW بالشكل التالي :

C#:

كود :
Object ahmedCar=new BMW();
vb.net:

كود :
Dim ahmedCar As Object = New BMW()
هذا صحيح ايضاً لإن كل كلاس هو Object ايضاً ، لكن لو قمنا بارسال المتغير إلى الدالة التي تستقبل Car فسوف تظهر رسالة خطا ، لذا نقوم بعمل cast بأحد الاشكال التالية :

c#:

كود :
functionname((Car)ahmedCar);
functionname((BMW)ahmedCar);
vb.net:

كود :
functionname(DirectCast(ahmedCar, Car))
functionname(DirectCast(ahmedCar, BMW))
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس الحادي والعشرون - الوراثة Inheritance - بواسطة Raggi Tech - 14-10-12, 03:35 PM


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم