مشاركة عبر


CA1501: Avoid excessive inheritance

TypeName

AvoidExcessiveInheritance

CheckId

ca1501

Category

Microsoft.Maintainability

تعطيل تغيير

فصل

السبب

نوع هو المزيد الرابع مستويات أعمق في هيكلي للوراثة الخاصة به.

وصف القاعدة

يصعب التسلسلات الهرمية لنوع متداخل بشكل عميق إلى تتبع وفهم وصيانتها. تحدد هذه قاعدة التحليل إلى التسلسلات الهرمية ضمن نفس وحدة نمطية?.

كيف إلى الإصلاح انتهاكات

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

عند إلى منع التحذيرات

هو الأمن لمنع ظهور تحذير من القيم بالموضع هو قاعدة؛ ومع ذلك، قد تكون تعليمات برمجية من الصعب المحافظة على. لاحظ أنه وفقا لرؤية قاعدة أنواع، حل مشكلات خرق هذه قاعدة قد تقوم بإنشاء أحدث التغييرات. على سبيل المثال، إزالة الأنواع الأساسية العامة تغيير الفاصلة.

مثال

يلي مثال يظهر نوع يخالف قاعدة.

Imports System

Namespace MaintainabilityLibrary

   Class BaseClass
   End Class

   Class FirstDerivedClass
      Inherits BaseClass
   End Class

   Class SecondDerivedClass
      Inherits FirstDerivedClass
   End Class

   Class ThirdDerivedClass
      Inherits SecondDerivedClass
   End Class

   Class FourthDerivedClass
      Inherits ThirdDerivedClass
   End Class

   ' This class violates the rule.
   Class FifthDerivedClass
      Inherits FourthDerivedClass
   End Class

End Namespace
using System;

namespace MaintainabilityLibrary
{
   class BaseClass {}
   class FirstDerivedClass : BaseClass {}
   class SecondDerivedClass : FirstDerivedClass {}
   class ThirdDerivedClass : SecondDerivedClass {}
   class FourthDerivedClass : ThirdDerivedClass {}

   // This class violates the rule.
   class FifthDerivedClass : FourthDerivedClass {}
}