سؤال

بعد المصارعة مع مجموعة من الاستثناءات غير المطلوبة عند محاولة إجراء تسلسل دراسي والفئات الفرعية ، فهمت أخيرًا ما كانت مشكلتي: [قابلة للتسلسل] غير موروثة بالفئات الفرعية عند تطبيقها على فئة أساسية. ما زلت غامضًا حقًا بشأن سمات C# بشكل عام ، لكنني أفهم أنه عند إنشاء سمة مخصصة ، يمكن للمبرمج تمكين الميراث التلقائي للسمة.

هناك أي طريقة لتجاوز ميراث [التسلسل]؟ هل هناك أي سبب وجيه لعدم القيام به منذ البداية و/أو سيكون فكرة سيئة للقيام بذلك في المقام الأول؟ أرغب في أن تكون جميع الفئات الفرعية من الفئة الأساسية المذكورة قابلة للتسلسل ، لذلك يبدو أنه لا يتعين علينا إضافة السمة إلى أي فئات فرعية جديدة أقوم بها.

شكرًا!

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

المحلول

هناك سبب وجيه على الإطلاق لم يتم القيام به في المقام الأول - لمجرد أن الطبقة الأساسية قابلة للتسلسل لا يعني أن الطبقة المشتقة بشكل طبيعي.

تبا، object قابلة للتسلسل - إذا تم توريث قابلية التسلسل ، فهذا يعني أن كل فصل في .NET سيكون قابلاً للتسلسل :)

لا يمكنك "تجاوز" ذلك أيضًا - عليك تحديده في كل فصل. أعتقد أن هذا شيء جيد ، في الواقع - عندما تضيف السمة ، يجب عليك إجراء فحص عقلي على الفصل والتحقق من أنه حقًا يفعل من المنطقي التسلسل لها.

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