Partilhar via


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(){}
   }
}