C# - konstruktor prywatny

Odpowiedz Nowy wątek
2019-11-13 17:49

Rejestracja: 3 miesiące temu

Ostatnio: 2 miesiące temu

0

cześć,
muszę stworzyć prywatny konstruktor parametryczny, który jest używany do czegoś, np. przez jakiś
inny konstruktor a nie mam pojęcia jak to zrobić. Nie wiem jak odwołać się do niego skoro jest prywatny. Ma ktoś jakiś pomysł?
z góry dziękuje za pomoc

Pozostało 580 znaków

2019-11-13 18:07

Rejestracja: 2 lata temu

Ostatnio: 5 godzin temu

Lokalizacja: Jastrzębie-Zdrój

2

Singleton

czemu singleton? - WeiXiao 2019-11-13 20:08
Pierwsze co mi do głowy przyszło jeśli ktoś mówi o prywatnym konstruktorze. - AdamWox 2019-11-13 20:10
konstruktor prywatny nie tworzy automatycznie singeltona ;) - Akihito 2019-11-14 10:17
Jaki jest sens konstruktora prywatnego skoro i tak w metodzie statycznej się do niego odwołujemy? Czyli efekt końcowy jest ten sam jakbyśmy się odwołali to konstruktora publicznego. W przypadku singletona przynajmniej mamy jedną instancję danej klasy i w tym przypadku to ma więcej sensu. - AdamWox 2019-11-14 10:21
Serio? Jeszcze trochę i będziemy pisać klasy po to żeby były, a nie po to żeby ich użyć... Nie korzystam z factory pattern więc może dlatego wydaje się to głupie dla mnie ;-) - AdamWox 2019-11-14 10:34

Pozostało 580 znaków

2019-11-13 20:07

Rejestracja: 3 lata temu

Ostatnio: 2 godziny temu

5
public class T
{
    public string Something { get; set; }

    private T(string input)
    {
        this.Something = input;
    }

    public static T CreateInstanceOfT(string input)
    {
        return new T(input);
    }
}
edytowany 2x, ostatnio: WeiXiao, 2019-11-13 20:10

Pozostało 580 znaków

2019-11-14 10:22

Rejestracja: 16 lat temu

Ostatnio: 2 godziny temu

2

Można zrobić coś takiego:

using System;

class Klasa
{
    private Klasa(int i)
    {
        Console.WriteLine($"Konstruktor prywatny, i = {i}");
    }

    public Klasa()
        : this(123)
    {
        Console.WriteLine("Konstruktor publiczny");
    }
}

class Program
{
    static void Main(string[] args)
    {
        new Klasa();
    }
}

Pozostało 580 znaków

2019-11-14 23:53

Rejestracja: 3 miesiące temu

Ostatnio: 2 miesiące temu

0

Dziekuje bardzi

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0