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.

10
Jak odczytać atrybut klasy w czasie wykonywania?
Próbuję utworzyć metodę ogólną, która odczyta atrybut klasy i zwróci tę wartość w czasie wykonywania. Jak miałbym to zrobić? Uwaga: atrybut DomainName ma klasę DomainNameAttribute. [DomainName("MyTable")] Public class MyClass : DomainBase {} Co próbuję wygenerować: //This should return "MyTable" String DomainNameValue = GetDomainName<MyClass>();

8
Wywołanie metody statycznej dla parametru typu ogólnego
Miałem nadzieję zrobić coś takiego, ale wydaje się to nielegalne w C #: public Collection MethodThatFetchesSomething<T>() where T : SomeBaseClass { return T.StaticMethodOnSomeBaseClassThatReturnsCollection(); } Pojawia się błąd kompilacji: „„ T ”to„ parametr typu ”, który nie jest prawidłowy w danym kontekście”. Biorąc pod uwagę parametr typu ogólnego, w jaki sposób …
107 c#  generics 

11
Najlepszy wyjątek dla nieprawidłowego argumentu typu ogólnego
Obecnie piszę kod dla UnconstrainedMelody, który ma ogólne metody do wyliczenia. Teraz mam statycznych klasy z grupą metod, które są wyłącznie przeznaczone do pracy z „flagi” teksty stałe. Nie mogę dodać tego jako ograniczenia ... więc możliwe, że będą wywoływane także z innymi typami wyliczeń. W takim przypadku chciałbym zgłosić …
106 c#  generics  exception 


1
Wywołanie statycznych metod ogólnych
Natknąłem się na ciekawą sytuację związaną ze statycznymi metodami ogólnymi. To jest kod: class Foo<E> { public static <E> Foo<E> createFoo() { // ... } } class Bar<E> { private Foo<E> member; public Bar() { member = Foo.createFoo(); } } Dlaczego nie muszę określać żadnych argumentów typu w wyrażeniu Foo.createFoo()? …

5
Protokół może być używany tylko jako ograniczenie ogólne, ponieważ ma wymagania własne lub związane z typem
Mam protokół RequestType i ma skojarzony model typu, jak poniżej. public protocol RequestType: class { associatedtype Model var path: String { get set } } public extension RequestType { public func executeRequest(completionHandler: Result<Model, NSError> -> Void) { request.response(rootKeyPath: rootKeyPath) { [weak self] (response: Response<Model, NSError>) -> Void in completionHandler(response.result) guard …

15
Jak uniknąć ostrzeżeń bezpieczeństwa typów dzięki wynikom Hibernate HQL?
Na przykład mam takie zapytanie: Query q = sess.createQuery("from Cat cat"); List cats = q.list(); Jeśli spróbuję zrobić coś takiego, pojawia się następujące ostrzeżenie Type safety: The expression of type List needs unchecked conversion to conform to List<Cat> List<Cat> cats = q.list(); Czy jest sposób, aby tego uniknąć?
105 java  generics 

9
Nie można utworzyć tablicy LinkedLists w Javie…?
Pracuję nad rzadką klasą macierzy, która musi używać tablicy LinkedListdo przechowywania wartości macierzy. Każdy element tablicy (tj. Każdy LinkedList) reprezentuje wiersz macierzy. Każdy element LinkedListtablicy reprezentuje kolumnę i przechowywaną wartość. W mojej klasie mam deklarację tablicy jako: private LinkedList<IntegerNode>[] myMatrix; W moim konstruktorze dla programu SparseMatrixpróbuję zdefiniować: myMatrix = new …
102 java  arrays  generics 


13
Dlaczego powinno mnie obchodzić, że Java nie ma reified generics?
Pojawiło się jako pytanie, które zadałem niedawno w wywiadzie, jako coś, co kandydat chciał, aby zostało dodane do języka Java. Powszechnie uważa się, że problem z tym, że Java nie ma zreifikowanych typów generycznych, ale gdy został popchnięty, kandydat nie mógł mi powiedzieć, jakie rzeczy mógłby osiągnąć, gdyby tam byli. …


3
Jak uzyskać nazwę typu argumentu typu ogólnego?
Jeśli mam podpis metody, taki jak public string myMethod<T>( ... ) Jak mogę, wewnątrz metody, uzyskać nazwę typu, który został podany jako argument typu? Chciałbym zrobić coś podobnego typeof(T).FullName, ale to faktycznie działa ...
101 c#  generics 



8
W C #, jak utworzyć wystąpienie przekazanego typu ogólnego w metodzie?
Jak mogę utworzyć wystąpienie typu T w mojej InstantiateType<T>metodzie poniżej? Pojawia się błąd: „T” to „parametr typu”, ale jest używany jako „zmienna”. : (PRZEWIŃ W DÓŁ, ​​ABY ODPOWIEDZIĆ NA PONOWNIE) using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestGeneric33 { class Program { static void Main(string[] args) { Container …
98 c#  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.