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