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