Compartilhar via


Tipos detentor estático não devem ter construtores

TypeName

StaticHolderTypesShouldNotHaveConstructors

CheckId

CA1053

Category (Categoria)

Microsoft.Design

Quebrando alterar

Quebrando

Causa

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

Descrição da regra

O construtor é desnecessário pois chamar membros estático não requer uma instância do tipo.Além disso, porque o tipo não tem membros non-estático, 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, remova o construtor padrão ou tornar particular.

Observação:

Alguns compiladores automaticamente criar um construtor público padrão se o tipo não definir qualquer construtores.Se esse for o caso 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 violam 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 translation from VPE for Csharp inserirá um construtor padrão, que viola esta 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() {}
   }
}