قبول مجموعة محدودة من الفرعية في وسيطة طريقة
سؤال
هذا مع 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 في الوقت الذي تحتاجه لتحميل الطريقة لكل نوع تريد السماح به.
لا تنتمي إلى StackOverflow