ca1061: قم بإخفاء وظائف فئة الأساس لا

TypeName

DoNotHideBaseClassMethods

CheckId

ca1061

Category

Microsoft.تصميم

تعطيل تغيير

فصل

السبب

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

وصف القاعدة

أسلوب في نوع أساس هو مخفية بواسطة أسلوب مسماة بالمثل في نوع مشتق عند توقيع معلمة أسلوب المشتقة يختلف فقط عن طريق أنواع أكثر weakly مشتقة من أنواع المناظرة في التوقيع معلمة الأسلوب الأساسي.

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

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

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

لا بمنع تحذير من هذه قاعدة.

مثال

يوضح المثال التالي أسلوب التي تخالف قاعدة.

using System;

namespace DesignLibrary
{
   class BaseType
   {
      internal void MethodOne(string inputOne, object inputTwo)
      {
         Console.WriteLine("Base: {0}, {1}", inputOne, inputTwo);
      }

      internal void MethodTwo(string inputOne, string inputTwo)
      {
         Console.WriteLine("Base: {0}, {1}", inputOne, inputTwo);
      }
   }

   class DerivedType : BaseType
   {
      internal void MethodOne(string inputOne, string inputTwo)
      {
         Console.WriteLine("Derived: {0}, {1}", inputOne, inputTwo);
      }

      // This method violates the rule.
      internal void MethodTwo(string inputOne, object inputTwo)
      {
         Console.WriteLine("Derived: {0}, {1}", inputOne, inputTwo);
      }
   }

   class Test
   {
      static void Main()
      {
         DerivedType derived = new DerivedType();

         // Calls DerivedType.MethodOne.
         derived.MethodOne("string1", "string2");

         // Calls BaseType.MethodOne.
         derived.MethodOne("string1", (object)"string2");

         // Both of these call DerivedType.MethodTwo.
         derived.MethodTwo("string1", "string2");
         derived.MethodTwo("string1", (object)"string2");
      }
   }
}