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>();
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 …
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ć …
czy jest jakiś sposób, aby odzyskać typ Tod IEnumerable<T>poprzez odbicie? na przykład mam zmienne IEnumerable<Child>informacje; chcę odzyskać typ dziecka poprzez refleksję
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()? …
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 …
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ąć?
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 …
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. …
Znajduję to SortedList<TKey, TValue> SortedDictionary<TKey, TValue>i Dictionary<TKey, TValue>wdrażam te same interfejsy. Kiedy powinniśmy zdecydować się na SortedListi SortedDictionarynadDictionary ? Jaka jest różnica między SortedListi SortedDictionarypod względem zastosowania?
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 ...
Jestem nowy w C # i nie rozumiem, dlaczego poniższy kod nie działa. public static Nullable<T> CoalesceMax<T>(Nullable<T> a, Nullable<T> b) where T : IComparable { if (a.HasValue && b.HasValue) return a.Value.CompareTo(b.Value) < 0 ? b : a; else if (a.HasValue) return a; else return b; } // Sample usage: public …
To się nie kompiluje, każda sugestia jest mile widziana. ... List<Object> list = getList(); return (List<Customer>) list; Kompilator mówi: nie można przesyłać List<Object>doList<Customer>
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 …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.