CA1047: não declarar membros protegidos em tipos lacrados
TypeName |
DoNotDeclareProtectedMembersInSealedTypes |
CheckId |
CA1047 |
Categoria |
Microsoft.Design |
Alteração Significativa |
Sem quebra |
Causa
Um tipo utilitário for sealed (NotInheritable no Visual Basic) e declara um membro protegido ou um tipo aninhado protegido.Esta regra não informa violações dos métodos de Finalize , que devem seguir o padrão.
Descrição da Regra
Os tipos declaram membros protegidos herdar tipos de forma que possa acessar ou substituir o membro.Por definição, você não pode herdar de um tipo selado, o que significa que os métodos protegidos em tipos selados não podem ser chamados.
O compilador C# emite um aviso para esse erro.
Como Corrigir Violações
Para corrigir uma violação desta regra, altere o nível de acesso de membro em particular, ou fazer o tipo herdável.
Quando Suprimir Alertas
Não elimine um alerta desta regra.Deixar o tipo em seu estado atual pode causar problemas de manutenção e não fornece nenhum benefícios.
Exemplo
O exemplo a seguir mostra um tipo que viola esta 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(){}
}
}