الميراث الغالب على السمات الجوهرية في ج#
-
27-09-2019 - |
سؤال
بعد المصارعة مع مجموعة من الاستثناءات غير المطلوبة عند محاولة إجراء تسلسل دراسي والفئات الفرعية ، فهمت أخيرًا ما كانت مشكلتي: [قابلة للتسلسل] غير موروثة بالفئات الفرعية عند تطبيقها على فئة أساسية. ما زلت غامضًا حقًا بشأن سمات C# بشكل عام ، لكنني أفهم أنه عند إنشاء سمة مخصصة ، يمكن للمبرمج تمكين الميراث التلقائي للسمة.
هناك أي طريقة لتجاوز ميراث [التسلسل]؟ هل هناك أي سبب وجيه لعدم القيام به منذ البداية و/أو سيكون فكرة سيئة للقيام بذلك في المقام الأول؟ أرغب في أن تكون جميع الفئات الفرعية من الفئة الأساسية المذكورة قابلة للتسلسل ، لذلك يبدو أنه لا يتعين علينا إضافة السمة إلى أي فئات فرعية جديدة أقوم بها.
شكرًا!
المحلول
هناك سبب وجيه على الإطلاق لم يتم القيام به في المقام الأول - لمجرد أن الطبقة الأساسية قابلة للتسلسل لا يعني أن الطبقة المشتقة بشكل طبيعي.
تبا، object
قابلة للتسلسل - إذا تم توريث قابلية التسلسل ، فهذا يعني أن كل فصل في .NET سيكون قابلاً للتسلسل :)
لا يمكنك "تجاوز" ذلك أيضًا - عليك تحديده في كل فصل. أعتقد أن هذا شيء جيد ، في الواقع - عندما تضيف السمة ، يجب عليك إجراء فحص عقلي على الفصل والتحقق من أنه حقًا يفعل من المنطقي التسلسل لها.