Q&A – Prywatny konstruktor w C# – kiedy używać i co nam daje?

Po pierwsze prywatny konstruktor w C# uniemożliwia nam utworzenie instancji klasy.
Po drugie – uniemożliwia dziedziczenie po niej.

Do czego więc może się przydać?
Otóż przydać się może, gdy chcemy utworzyć klasę, która zawierać będzie tylko metody statyczne i nie potrzebujemy, a wręcz nie chcemy, by ktokolwiek tworzył instancje tejże klasy.

  • Zbych

    Niestety nie mogę się zgodzić z przedstawionym uzasadnieniem. Jeżeli klasa zawiera tylko metody statyczne , C# udostępnia specjalne słowo kluczowe „static”, które służy do oznaczania takich klas. Klasycznym zastosowaniem prywatnych konstruktorów w C# jest przypadek, w którym chcemy by tylko dana klasa mogła tworzyć swoje instancje (np. Poprzez statyczną metodę Create).

  • Zbych

    PS. Do zakzania dziedzicznenia powinno być zastosowane słowo kluczowe „sealed”.

  • Iwona

    Nie trzeba się od razu nie zgadzać. Zarówno to co w poście jak i w komentarzach jest prawidłowe a cykl Q&A ma na celu pokazanie tych mniej oczywistych odpowiedzi na często pojawiające się pytania:)
    Zresztą „może się przydać” to nie to samo co „robimy tylko i wyłącznie tak”:D