CA1047: Não declarar membros protegidos em tipos lacrados
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 protegido.Esta regra não relata 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 pode acessar ou substituir o membro.Por definição, você não pode herdar de um tipo selado, que significa que é protegido por 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(){}
}
}