Prywatne konstruktory (C# Programming Guide)
Prywatne konstruktora jest konstruktora instancji specjalne.Zazwyczaj jest używana w klasach, które zawierają tylko elementy statyczne.Jeśli klasa posiada jeden lub więcej prywatne konstruktory i brak konstruktorów publicznych, innych klas (z wyjątkiem klas zagnieżdżonych) nie można utworzyć wystąpienia tej klasy.Na przykład:
class NLog
{
// Private Constructor:
private NLog() { }
public static double e = Math.E; //2.71828...
}
Deklaracja pustego konstruktora uniemożliwia automatyczne generowanie domyślnego konstruktora.Należy zauważyć, że jeżeli nie używasz modyfikatora dostępu z konstruktora nadal będzie prywatnych domyślnie.Jednakże prywatnych stosowany jest modyfikator zazwyczaj jawnie aby je wyczyścić, że nie można utworzyć wystąpienia klasy.
Prywatne konstruktory są używane w celu zapobieżenia Tworzenie instancji klasy, gdy nie ma żadnych pól wystąpień lub metod, takich jak Math klasy, lub kiedy wywoływana jest metoda uzyskania instancji klasy.Wszystkie metody w klasie są statyczne, należy rozważyć dokonanie pełną klasy statyczne.Aby uzyskać więcej informacji, zobacz Klasy statyczne i elementów klas statycznych (Podręcznik programowania C#).
Przykład
Oto przykład klasy przy użyciu konstruktora prywatnych.
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
Należy zauważyć, że jeżeli następującą instrukcję z przykładu, to zostanie wygenerowany błąd ponieważ konstruktora jest niedostępny z powodu jego poziom ochrony:
// Counter aCounter = new Counter(); // Error
Specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka to najlepsze źródło informacji dotyczących składni i zastosowania języka C#.
Zobacz też
Informacje
Klasy i strukturach (Podręcznik programowania C#)
Konstruktory (Podręcznik programowania C#)
Destruktory (Podręcznik programowania C#)