قبول مجموعة محدودة من الفرعية في وسيطة طريقة

StackOverflow https://stackoverflow.com/questions/1314629

  •  19-09-2019
  •  | 
  •  

سؤال

هذا مع C # و .NET 3.5

دعنا نقول إن لدي الطريقة التالية:

myMethod(myBaseClass mbc)

في مشروعي، ترث جميع الفصول التالية من Mybaseclass.

ot1:myBaseClass
ot2:myBaseClass
ot3:myBaseClass
ot4:myBaseClass

هل هناك أي حيل ستسمح لي باستخدام MyMethod مع OT1 و OT3 ولكن ليس OT2 و OT4، أو هل يجب علي التحميل الزائد لكل نوع أريد السماح به؟

هل كانت مفيدة؟

المحلول

واجهة. تغيير طريقة توقيعك ل

myMethod(ICastableAsMyBaseClass mbc)

ثم لديك OT1 و OT3 تنفيذ ICastableAsMyBaseClass.

نصائح أخرى

يمكنك التحقق من فئة MBC في وقت التشغيل، ولكن من الواضح أنه لن يمنعك من الاتصال بالطريقة مع الوقت الخطأ في وقت الترجمة.

إذا كنت تريد ترجمة Typechecking في الوقت الذي تحتاجه لتحميل الطريقة لكل نوع تريد السماح به.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top