Compartilhar via


CA1053: os tipos de suporte estático não devem ter construtores

TypeName

StaticHolderTypesShouldNotHaveConstructors

CheckId

CA1053

Categoria

Microsoft.Design

Alteração Significativa

Quebra

Causa

Um público ou um tipo público aninhado declaram apenas membros estáticos e têm um construtor público ou protegido por padrão.

Descrição da Regra

O construtor é desnecessária porque chamar membros estáticos não requer uma instância do tipo.Além disso, como o tipo não tem membros de não estático, criar uma instância não fornece acesso a qualquer um dos membros do tipo.

Como Corrigir Violações

Para corrigir uma violação desta regra, remova o construtor padrão ou faça-o privado.

ObservaçãoObservação

Alguns compiladores criam automaticamente um construtor da opção do utilitário se o tipo não define nenhum construtores.Se esse for o caso com seu tipo, adicione um construtor padrão particular para eliminar a violação.

Quando Suprimir Alertas

Não elimine um alerta desta 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 viola esta regra.Observe que não há construtor padrão no código-fonte.Quando esse código é compilado em um assembly, o compilador C# inserirá um construtor padrão, que viola esta regra.Para corrigir isso, declarar um construtor privado.

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