CA1047: Não é declarar membros protegidos em tipos sealed

TypeName

DoNotDeclareProtectedMembersInSealedTypes

CheckId

CA1047

<strong>Categoria</strong>

Microsoft.design

Alteração significativa

Não-separável

Causa

Um tipo público é sealed (NotInheritable no Visual basic) e declara um membro protegido ou um tipo aninhado protegidos. Esta regra não relatar violações para Finalize métodos, que devem seguir esse padrão.

Descrição da regra

Tipos de declarar membros protegidos para que tipos de herança possa acessar ou substituir o membro. Por definição, você não pode herdar de um tipo selado, que significa que protegido métodos em tipos lacrados não pode ser chamada.

O compilador C# emitirá um aviso para este erro.

Como corrigir violações

Para corrigir uma violação desta regra, alterar o nível de acesso do membro para private ou fazer com que o tipo herdáveis.

Quando suprimir avisos

Não suprimir um aviso da regra. Deixar o tipo em seu estado atual pode causar problemas de manutenção e não oferece nenhum benefício.

Exemplo

O exemplo a seguir mostra um tipo que viole essa regra.

Imports System

Namespace DesignLibrary

   Public NotInheritable Class BadSealedType
      Protected  Sub MyMethod
      End Sub
   End Class

End Namespace
using System;

namespace DesignLibrary
{
   public sealed class SealedClass
   {
      protected void ProtectedMethod(){}
   }
}