I tipi che contengono membri statici non devono avere costruttori
Aggiornamento: novembre 2007
TypeName |
StaticHolderTypesShouldNotHaveConstructors |
CheckId |
CA1053 |
Category |
Microsoft.Design |
Breaking Change |
Breaking |
Causa
Un tipo pubblico o nidificato dichiara solo membri statici e presenta un costruttore predefinito pubblico o protetto.
Descrizione della regola
Il costruttore non è necessario perché la chiamata a membri statici non richiede un'istanza del tipo. Poiché il tipo non presenta membri non statici, la creazione di un'istanza non consente di accedere ad alcun membro del tipo.
Correzione di violazioni
Per correggere una violazione di questa regola, rimuovere il costruttore predefinito o renderlo privato.
Nota: |
---|
Alcuni compilatori creano automaticamente un costruttore predefinito pubblico se il tipo non definisce alcun costruttore. In questo caso, aggiungere un costruttore predefinito privato per eliminare la violazione. |
Esclusione di avvisi
Non escludere un avviso da questa regola. La presenza del costruttore indica che il tipo non è un tipo statico.
Esempio
Nell'esempio riportato di seguito viene illustrato un tipo che viola questa regola. Si noti che non è presente alcun costruttore predefinito nel codice sorgente. Quando questo codice viene compilato in un assembly, il compilatore C# inserirà un costruttore predefinito, con conseguente violazione della regola. Per correggere il problema, dichiarare un costruttore privato.
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() {}
}
}