Diskuze: Jedna kolekcia na viac inštancie rôznych tried

C# .NET .NET (C# a Visual Basic) Jedna kolekcia na viac inštancie rôznych tried American English version English version

Avatar
Libor Šimo (libcosenior):

Chcel by som mať v jednej kolekcii rôzne inštacie tried, poprípade rôzne dátové typy.
Najviac by mi to vyhovovalo v Slovníku (Dictionary) aby som mohol využiť hashovanie.
Je takéto niečo možné?
Ak áno, poradí niekto?

Odpovědět 23.10.2013 12:08
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Libor Šimo (libcosenior)
David Čápka:

Pokud spolu ty objekty souvisí, měly by mít společného předka. Pokud ne, neměly by být v jedné kolekci.

Editováno 23.10.2013 12:13
Nahoru Odpovědět 23.10.2013 12:13
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Libor Šimo (libcosenior):

Nie je náhodou toto riešenie:
citujem:
Když uvedeme za where ještě new(), můžeme uvnitř typ T instanciovat. Taková malá továrna na instance libovolného typu by mohla vypadat takto:

public class Tovarna<T> where T : new()
{
    public T VytvorInstanci()
    {
        return new T();
    }
}
Nahoru Odpovědět 23.10.2013 12:16
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na David Čápka
Libor Šimo (libcosenior):

Nie je náhodou Object spoločný predok všetkých inštancií?

Nahoru Odpovědět 23.10.2013 12:17
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Kit:

Třídy nemusí mít společného předka, ale musí implementovat stejné rozhraní. V Javě to může být klidně i Object, pokud ti metody jeho rozhraní stačí.

Nahoru Odpovědět 23.10.2013 12:44
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Jan Vargovský:

Není, to T ti reprezentuje daný objekt, který je ale nezávislý a tou podmínkou jsi jen doplnil, že musí obsahovat konstruktor a nesmí to být nějaký primitivní typ. Jinak jak už tu radili, můžeš udělat továrnu toho stejného předka a pak snima pracovat tak jak budeš potřebovat.

 
Nahoru Odpovědět 23.10.2013 13:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.