Вопросы с тегом «generics»

Обобщения являются формой параметрического полиморфизма, встречающейся в ряде языков, включая языки .NET, Java, Swift и Rust.

10
Как прочитать атрибут класса во время выполнения?
Я пытаюсь создать универсальный метод, который будет считывать атрибут класса и возвращать это значение во время выполнения. Как мне это сделать? Примечание. Атрибут DomainName относится к классу DomainNameAttribute. [DomainName("MyTable")] Public class MyClass : DomainBase {} Что я пытаюсь создать: //This should return "MyTable" String DomainNameValue = GetDomainName<MyClass>();

8
Вызов статического метода для параметра универсального типа
Я надеялся сделать что-то подобное, но в C # это оказалось незаконным: public Collection MethodThatFetchesSomething<T>() where T : SomeBaseClass { return T.StaticMethodOnSomeBaseClassThatReturnsCollection(); } Я получаю ошибку времени компиляции: «'T' - это 'параметр типа', который недопустим в данном контексте». Учитывая параметр универсального типа, как я могу вызвать статический метод для универсального …
107 c#  generics 

11
Лучшее исключение для недопустимого аргумента универсального типа
В настоящее время я пишу код для UnconstrainedMelody, который имеет общие методы, связанные с перечислениями. Теперь у меня есть статический класс с кучей методов, которые предназначены только для использования с перечислениями «флагов». Я не могу добавить это как ограничение ... поэтому возможно, что они будут вызываться и с другими типами …
106 c#  generics  exception 

13
получение типа T из IEnumerable <T>
есть ли способ получить тип TизIEnumerable&lt;T&gt; посредством отражения? например у меня есть переменная IEnumerable&lt;Child&gt;информация; я хочу получить тип ребенка через отражение
106 c#  generics  reflection 

1
Вызов статических универсальных методов
Я столкнулся с любопытной ситуацией, связанной со статическими универсальными методами. Это код: class Foo&lt;E&gt; { public static &lt;E&gt; Foo&lt;E&gt; createFoo() { // ... } } class Bar&lt;E&gt; { private Foo&lt;E&gt; member; public Bar() { member = Foo.createFoo(); } } Почему мне не нужно указывать аргументы типа в выражении Foo.createFoo()? Это …

15
Как избежать предупреждений о безопасности типов с результатами Hibernate HQL?
Например, у меня есть такой запрос: Query q = sess.createQuery("from Cat cat"); List cats = q.list(); Если я попытаюсь сделать что-то вроде этого, появится следующее предупреждение Type safety: The expression of type List needs unchecked conversion to conform to List&lt;Cat&gt; List&lt;Cat&gt; cats = q.list(); Есть ли способ избежать этого?
105 java  generics 


9
Не удается создать массив LinkedLists в Java…?
Я работаю над классом разреженных матриц, который должен использовать массив LinkedListдля хранения значений матрицы. Каждый элемент массива (т.е. каждый LinkedList) представляет собой строку матрицы. И каждый элемент в LinkedListмассиве представляет столбец и сохраненное значение. В моем классе у меня есть объявление массива как: private LinkedList&lt;IntegerNode&gt;[] myMatrix; И в своем конструкторе …
102 java  arrays  generics 

13
Почему меня должно волновать, что в Java нет обобщенных дженериков?
Это возникло в качестве вопроса, который я недавно задал в интервью, поскольку кандидат хотел бы видеть добавление к языку Java. Обычно болью называют то, что в Java нет обобщенных дженериков, но, когда меня подталкивали, кандидат не мог сказать мне, чего бы он мог достичь, если бы они были там. Очевидно, …

3
Как мне получить имя типа аргумента универсального типа?
Если у меня есть подпись метода, например public string myMethod&lt;T&gt;( ... ) Как я могу внутри метода получить имя типа, которое было задано как аргумент типа? Я бы хотел сделать что-то подобное typeof(T).FullName, но это действительно работает ...
102 c#  generics 

5
Протокол может использоваться только как общее ограничение, потому что он имеет требования Self или associatedType.
У меня есть протокол RequestType, и у него есть модель AssociatedType, как показано ниже. public protocol RequestType: class { associatedtype Model var path: String { get set } } public extension RequestType { public func executeRequest(completionHandler: Result&lt;Model, NSError&gt; -&gt; Void) { request.response(rootKeyPath: rootKeyPath) { [weak self] (response: Response&lt;Model, NSError&gt;) -&gt; …

4
Справка по ошибке универсальных шаблонов C # - «Тип 'T' должен быть типом значения, не допускающим значения NULL»
Я новичок в C # и не понимаю, почему следующий код не работает. public static Nullable&lt;T&gt; CoalesceMax&lt;T&gt;(Nullable&lt;T&gt; a, Nullable&lt;T&gt; b) where T : IComparable { if (a.HasValue &amp;&amp; b.HasValue) return a.Value.CompareTo(b.Value) &lt; 0 ? b : a; else if (a.HasValue) return a; else return b; } // Sample usage: public …
100 c#  generics 


6
SortedList <>, SortedDictionary <> и Dictionary <>
Я нахожу это SortedList&lt;TKey, TValue&gt; SortedDictionary&lt;TKey, TValue&gt;и Dictionary&lt;TKey, TValue&gt;реализую те же интерфейсы. Когда мы должны выбрать SortedListи SortedDictionaryснова Dictionary? В чем разница между SortedListи SortedDictionaryс точки зрения применения?

8
Как в C # создать экземпляр переданного универсального типа внутри метода?
Как я могу создать экземпляр типа T внутри моего InstantiateType&lt;T&gt;метода ниже? Я получаю сообщение об ошибке: «T» - это «параметр типа», но используется как «переменная». : (ПРОКРУТИТЕ ВНИЗ, ЧТОБЫ ОТВЕЧИТЬ ОТВЕТ) using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestGeneric33 { class Program { static void Main(string[] args) { …
99 c#  generics 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.