Konstruktory soukromé (C# Příručka programování)
Privátní konstruktor je speciální instanci konstruktoru.Obecně se používá ve třídách, které obsahují pouze statické členy.Pokud třída má jeden nebo více soukromých konstruktory a žádné veřejné konstruktory, jiné třídy (kromě vnořených třídy) nelze vytvořit instance této třídy.Příklad:
class NLog
{
// Private Constructor:
private NLog() { }
public static double e = Math.E; //2.71828...
}
Prohlášení prázdný konstruktor zabrání automatické generování výchozí konstruktor.Všimněte si, že pokud nepoužijete modifikátor přístupu nastaven pomocí konstruktoru stále bude ve výchozím nastavení soukromé.Však soukromé Modifikátor je obvykle používán k jej explicitně zrušte, že nelze vytvořit instanci třídy.
Soukromé konstruktory slouží k zabránění vytvoření instance třídy, když nejsou žádné pole instance nebo metod, jako například Math třídy, nebo kdy je volána metoda získání instance třídy.Všechny metody třídy jsou statické, zvažte možnost provedení úplné třídy statické.Další informace získáte v tématu Statické třídy a členy statických tříd (Příručka programování C#).
Příklad
Následuje příklad použití soukromých konstruktoru třídy.
public class Counter
{
private Counter() { }
public static int currentCount;
public static int IncrementCount()
{
return ++currentCount;
}
}
class TestCounter
{
static void Main()
{
// If you uncomment the following statement, it will generate
// an error because the constructor is inaccessible:
// Counter aCounter = new Counter(); // Error
Counter.currentCount = 100;
Counter.IncrementCount();
Console.WriteLine("New count: {0}", Counter.currentCount);
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
// Output: New count: 101
Všimněte si, že pokud jste následující příkaz v příkladu, ji vygeneruje chybu protože konstruktoru není přístupný z důvodu jeho úroveň ochrany:
// Counter aCounter = new Counter(); // Error
Specifikace jazyka C#
Další informace naleznete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.
Viz také
Referenční dokumentace
Třídy a struktur (Příručka programování C#)
Konstruktory (Příručka programování C#)
Destruktory (Příručka programování C#)