CA2221: методы завершения должны быть защищены

Товар Значение
Идентификатор правила CA2221
Категория Microsoft.Usage
Критическое изменение Не критическое

Причина

Общедоступный тип реализует метод завершения, который не указывает доступ к семейству (защищенным).

Примечание.

Это правило устарело. Дополнительные сведения см. в разделе "Устаревшие правила".

Описание правила

В методах завершения должен использоваться модификатор доступа из семейства. Это правило применяется компиляторами C#, Visual Basic и C++.

Устранение нарушений

Чтобы устранить нарушение этого правила, измените метод завершения на доступ к семейству.

Когда лучше отключить предупреждения

Для этого правила отключать вывод предупреждений не следует.

Пример

Это правило не может быть нарушено на любом высокоуровневом языке .NET; Это может быть нарушено, если вы пишете промежуточный язык Майкрософт.

// =============== CLASS MEMBERS DECLARATION ===================
//   note that class flags, 'extends' and 'implements' clauses
//          are provided here for information only

.namespace UsageLibrary
{
  .class public auto ansi beforefieldinit FinalizeMethodNotProtected
         extends [mscorlib]System.Object
  {
    .method public hidebysig instance void
            Finalize() cil managed
    {

      // Code size       1 (0x1)
      .maxstack  0
      IL_0000:  ret
    } // end of method FinalizeMethodNotProtected::Finalize

    .method public hidebysig specialname rtspecialname
            instance void  .ctor() cil managed
    {
      // Code size       7 (0x7)
      .maxstack  1
      IL_0000:  ldarg.0
      IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
      IL_0006:  ret
    } // end of method FinalizeMethodNotProtected::.ctor

  } // end of class FinalizeMethodNotProtected
} // end of namespace

См. также