NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Garrom Orc Shaman:20.8.2017 13:57

Dělám hru v unity 3D enginu. Mám veřejnou, statickou třídu ve které uchovávám metody používané všude v projektu. Dělám na jedné veřejné metodě která porovná dva listy a vrátí true pokud oba listy obsahují stejné objekty (především hodnoty enum) takže typ obsahu listu není podstatný. Jak mohu do parametru dosadit list jakéhokoliv typu ?

Příklad níže

public static bool CompareLists(List<any> List1, List<any> List2)
Odpovědět
20.8.2017 13:57
Life for Code, Code for Life. I chose my path, I should stick on it.
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Garrom Orc Shaman
vajkuba1234:20.8.2017 14:23

Koukni se na generiku. Viz

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/introduction-to-generics
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
20.8.2017 14:23
No hope, no future, JUST WAR!
Avatar
Odpovídá na vajkuba1234
Garrom Orc Shaman:20.8.2017 15:09

Takže jediné co musím udělat je změnit

public static bool CompareLists(List<any> List1, List<any> List2)

na

public static bool CompareLists<T>(List<T> List1, List<T> List2)

Hmm... děkuji za pomoc a generika vypadá užitečně, určitě bych si o ni měl přečíst něco více.

Nahoru Odpovědět
20.8.2017 15:09
Life for Code, Code for Life. I chose my path, I should stick on it.
Avatar
Odpovídá na Garrom Orc Shaman
Marian Benčat:20.8.2017 17:17

Vy hlavně chcete aby ty Tcka implementovaly IComparable, takže tam dejte constrain na where T: IComparable<T>.. Jinak to těžko budete porovnávat a na přetíženy = nechcete sázet.. Ani na to, že to budou immutable value typy.

Editováno 20.8.2017 17:19
Nahoru Odpovědět
20.8.2017 17:17
Totalitní admini..
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.