Avatar
ondrejhartman:

Zdravím měl bych dotaz :) potřeboval bych jen převést jeden řádek kódu jedná se vlastně jen o public Collection<? extends Object) getObjects();.
Zatím to mám v c# jako List<Object> getObjects();.
Chtěl jsem se tedy zeptat, jestli to pak bude mít nějaký vliv na další běh programu a jestli by se tam to javovské ? extends... dalo nějak doplnit, nebo jestli to je jedno.
Díky :)

 
Odpovědět 8.12.2014 23:50
Avatar
Yahkem
Redaktor
Avatar
Yahkem:

Na Javu nejsem expert, podle mě se ptáš na variantní typy u genericity a ty se v C# píšou takto:

interface ICovariant<out T>
interface IContravariant<in T>

Ale jak jsem to pochopil chceš to použít v návratovém typu metody, to C# nepodporuje (variance má jen interface a delegát)

Editováno 9.12.2014 20:54
 
Nahoru Odpovědět 9.12.2014 20:53
Avatar
Yahkem
Redaktor
Avatar
Odpovídá na ondrejhartman
Yahkem:

Tak jsem na to podíval dnes ráno a myslím, že se to dá vyřešit pomocí generic type constraint:

public ICollection<T> getObjects<T>() where T : object
Editováno 10.12.2014 8:28
 
Nahoru Odpovědět 10.12.2014 8:28
Avatar
ondrejhartman:

Ano, chtěl jsem to udělat v interfacu a to opravdu nejde, děkuji za odpovědi :)

 
Nahoru Odpovědět 14.12.2014 22:49
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 4 zpráv z 4.