CA1053: Tipos de portador estático não devem ter construtores

TypeName

StaticHolderTypesShouldNotHaveConstructors

CheckId

CA1053

<strong>Categoria</strong>

Microsoft.design

Alteração significativa

Quebrando

Causa

Um tipo de público público ou aninhado declara apenas membros estáticos e possui um construtor padrão público ou protegido.

Descrição da regra

O construtor é desnecessário porque chamar membros estáticos não requer uma instância do tipo. Além disso, porque o tipo não tem membros de non-static, criando uma instância não fornece acesso a qualquer um dos membros do tipo.

Como corrigir violações

Para corrigir uma violação dessa regra, remover o construtor padrão ou torná-lo particular.

ObservaçãoObservação

Alguns compiladores criam automaticamente um construtor público padrão, se o tipo não definir qualquer construtores. Se esse for o maiúsculo com seu tipo, adicione um construtor padrão particular para eliminar a violação.

Quando suprimir avisos

Não suprimir um aviso da regra. A presença do construtor sugere que o tipo não é um tipo estático.

Exemplo

O exemplo a seguir mostra um tipo que viole essa regra. Observe que não há nenhum construtor padrão no código fonte. Quando esse código é compilado em um assembly, o compilador C# insere um construtor padrão, que irá violar a regra. Para corrigir isso, declare um construtor particular.

using System;

namespace DesignLibrary
{
   public class NoInstancesNeeded
   {
      // Violates rule: StaticHolderTypesShouldNotHaveConstructors.
      // Uncomment the following line to correct the violation.
      // private NoInstancesNeeded() {}

      public static void Method1() {}
      public static void Method2() {}
   }
}