Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Převod kódu z javy do C# ( ? extends base)

C# .NET .NET (C# a Visual Basic) Převod kódu z javy do C# ( ? extends base) American English version English version

Aktivity (1)
Avatar
ondrejhartman:8.12.2014 23:50

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:9.12.2014 20:53

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:10.12.2014 8:28

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:14.12.2014 22:49

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.