![]() |
|
سؤال حول المعامل Ctype - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : سؤال حول المعامل Ctype (/showthread.php?tid=18826) |
سؤال حول المعامل Ctype - ndjakoub - 16-01-17 السلام عليكم لدي مثلا الفئة Virement أصلية أشتق منها فئة VirementBank وأضيف لها خصائص جديدة ثم أقوم بهذه العملية Dim v1 as new Virement Dim v2 as new VirementBank = Ctype(v1,VirementBank ) عند التنفيذ ينطلق هذا الخطأ Impossible d'effectuer un cast d'un objet de type 'VIREMENT' en type VirementBank هل من طريقة أخرى لعمل التحويل وشكرا RE: سؤال حول المعامل Ctype - مساعدة - 16-01-17 السلام عليكم أولا غير صحيح أن تنشأ كانت جديد ب New وفي نفس الوقت تريد تحويله في سطرك الذي يبدو انك لم تنسخه كما هو من الكود الموجود لديك كود : Dim v2 as new VirementBank = Ctype(v1,VirementBank)يجب أن تكون الفئة Virement موروثة من VirementBank بواسطة Inherits وهذا ما تنفيه الرسالة، إلا إذا كان المقصود بالاشتقاق غير Inherits سيعمل الكود لو كان مثل كود : Dim v1 As New Virementكود : Class Virementكود : Class VirementBankRE: سؤال حول المعامل Ctype - silverlight - 17-01-17 المشكلة ليست في الوراثة أنت هنا تحاول الحصول علي نوع من نوع اخر أو بمعني أدق أنت هنا تحاول ان تقوم بعمل Casting و تحويل فئة الي فئة أخري و بالرغم ان احد الكلاسان مشتق من الأخر أي أنهم فعليا ينتميان الي نفس الأصل لكنك لن تحصل علي نتيجة دقيقة إلا إن كتبت دوال Ctype علي هيئة دوال من النوع Shared و هذا يجب أن يتم إما في الكلاس الأصلي او الكلاس الأخر أنصجك أن باستخدام Interface و تقوم بعمل Implementation له في كل من الكلاسان و هذا سوف ييسر لك الحصول علي نوع من الأخر |