Pytania otagowane jako generics

Generics to forma parametrycznego polimorfizmu występująca w wielu językach, w tym w językach .NET, Java, Swift i Rust.

18
Przekazywanie pojedynczego elementu jako IEnumerable <T>
Czy istnieje wspólny sposób przekazywania pojedynczego elementu typu Tdo metody, która oczekuje IEnumerable&lt;T&gt;parametru? Językiem jest C #, wersja ramowa 2.0. Obecnie używam metody pomocniczej (to .Net 2.0, więc mam całą masę rzutowych / rzutujących metod pomocniczych podobnych do LINQ), ale to po prostu wydaje się głupie: public static class IEnumerableExt …
377 c#  .net  generics  ienumerable 



16
Sprawdź, czy klasa pochodzi od klasy ogólnej
Mam w swoim projekcie klasę ogólną z klasami pochodnymi. public class GenericClass&lt;T&gt; : GenericInterface&lt;T&gt; { } public class Test : GenericClass&lt;SomeType&gt; { } Czy jest jakiś sposób, aby dowiedzieć się, czy Typeobiekt pochodzi GenericClass? t.IsSubclassOf(typeof(GenericClass&lt;&gt;)) nie działa.
309 c#  generics  reflection 

8
IEnumerable and Recursion using return return
Mam IEnumerable&lt;T&gt;metodę, której używam do znajdowania formantów na stronie WebForms. Ta metoda jest rekurencyjna i mam pewne problemy ze zwróceniem żądanego typu, gdy yield returnzwraca wartość wywołania rekurencyjnego. Mój kod wygląda następująco: public static IEnumerable&lt;Control&gt; GetDeepControlsByType&lt;T&gt;(this Control control) { foreach(Control c in control.Controls) { if (c is T) { yield …




13
Porównanie zerowe lub domyślne ogólnego argumentu w C #
Mam ogólną metodę zdefiniowaną w ten sposób: public void MyMethod&lt;T&gt;(T myArgument) Pierwszą rzeczą, którą chcę zrobić, jest sprawdzenie, czy wartość myArgument jest wartością domyślną dla tego typu, mniej więcej tak: if (myArgument == default(T)) Ale to się nie kompiluje, ponieważ nie mam gwarancji, że T zaimplementuje operator ==. Więc zmieniłem …
288 c#  generics 

11
Czy dopuszcza się typ zerowy jako parametr ogólny?
Chcę zrobić coś takiego: myYear = record.GetValueOrNull&lt;int?&gt;("myYear"), Zwróć uwagę na typ zerowalny jako parametr ogólny. Ponieważ GetValueOrNullfunkcja może zwrócić null, moja pierwsza próba była następująca: public static T GetValueOrNull&lt;T&gt;(this DbDataRecord reader, string columnName) where T : class { object columnValue = reader[columnName]; if (!(columnValue is DBNull)) { return (T)columnValue; } …
288 c#  generics 

6
Używanie Mockito do kpienia z klas za pomocą ogólnych parametrów
Czy istnieje czysta metoda wyśmiewania klasy za pomocą ogólnych parametrów? Powiedz, że muszę wyśmiewać klasę, Foo&lt;T&gt;którą muszę przekazać do metody, która oczekuje Foo&lt;Bar&gt;. Z łatwością mogę wykonać następujące czynności: Foo mockFoo = mock(Foo.class); when(mockFoo.getValue).thenReturn(new Bar()); Zakładając, getValue()zwraca typ ogólny T. Ale to będzie miało kocięta, kiedy później przekażę to do …
280 java  generics  mockito 

5
Co to jest Scala o wyższym rodzaju?
W Internecie można znaleźć: Wyższy rodzaj == typ konstruktora? class AClass[T]{...} // For example, class List[T] Niektórzy twierdzą, że jest to typ bardziej uporządkowany, ponieważ streszcza typy, które byłyby zgodne z definicją. Wyższe typy pokrewne to typy, które pobierają inne typy i konstruują nowy typ Są one jednak znane również …


3
Collections.emptyList () zwraca List <Object>?
Mam problem z nawigacją w regule Javy w celu wnioskowania o ogólnych parametrach typu. Rozważ następującą klasę, która ma opcjonalny parametr listy: import java.util.Collections; import java.util.List; public class Person { private String name; private List&lt;String&gt; nicknames; public Person(String name) { this(name,Collections.emptyList()); } public Person(String name,List&lt;String&gt; nicknames) { this.name = name; …

14
Uzyskaj ogólny typ pliku java.util.List
Mam; List&lt;String&gt; stringList = new ArrayList&lt;String&gt;(); List&lt;Integer&gt; integerList = new ArrayList&lt;Integer&gt;(); Czy istnieje (łatwy) sposób na uzyskanie ogólnego typu listy?
262 java  generics 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.