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

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

7
получить универсальный перечислитель из массива
Как в C # получить универсальный перечислитель из заданного массива? В приведенном ниже коде MyArray- это массив MyTypeобъектов. Я хотел бы получить MyIEnumeratorпоказанным способом, но мне кажется, что я получаю пустой счетчик (хотя я это подтвердил MyArray.Length > 0). MyType[] MyArray = ... ; IEnumerator<MyType> MyIEnumerator = MyArray.GetEnumerator() as IEnumerator<MyType>;

7
Невозможно явно специализировать универсальную функцию
У меня проблема со следующим кодом: func generic1<T>(name : String){ } func generic2<T>(name : String){ generic1<T>(name) } результат generic1 (name) для ошибки компилятора "Невозможно явно специализировать универсальную функцию" Есть ли способ избежать этой ошибки? Я не могу изменить сигнатуру функции generic1, поэтому она должна быть (String) -> Void
92 generics  swift 

4
Как потребовать, чтобы протокол мог быть принят только определенным классом
Я хочу этот протокол: protocol AddsMoreCommands { /* ... */ } только для того, чтобы быть принятыми классами, наследующими от класса UIViewController. Эта страница сообщает мне, что я могу указать, что он принимается только классом (в отличие от структуры), написав protocol AddsMoreCommands: class { } но я не понимаю, как …

8
Привести объект к T
Я разбираю XML-файл с XmlReaderклассом в .NET, и я подумал, что было бы разумно написать общую функцию синтаксического анализа для общего чтения различных атрибутов. Я придумал такую ​​функцию: private static T ReadData<T>(XmlReader reader, string value) { reader.MoveToAttribute(value); object readData = reader.ReadContentAsObject(); return (T)readData; } Как я понял, это работает не …
91 c#  generics  casting 


9
Невозможно неявно преобразовать тип Int в T
Я могу позвонить Get<int>(Stat);илиGet<string>(Name); Но при компиляции получаю: Невозможно неявно преобразовать тип int в T и то же самое для string. public T Get<T>(Stats type) where T : IConvertible { if (typeof(T) == typeof(int)) { int t = Convert.ToInt16(PlayerStats[type]); return t; } if (typeof(T) == typeof(string)) { string t = …
90 c#  generics 

4
Можно ли создать общий метод @helper с помощью Razor?
Я пытаюсь написать в Razor помощника, который выглядит следующим образом: @helper DoSomething<T, U>(Expression<Func<T, U>> expr) where T : class К сожалению, синтаксический анализатор считает, что <Tэто начало HTML-элемента, и я получаю синтаксическую ошибку. Можно ли с помощью Razor создать помощника, который является универсальным методом? Если да, то каков синтаксис?

3
Как использовать общий протокол в качестве типа переменной
Допустим, у меня есть протокол: public protocol Printable { typealias T func Print(val:T) } А вот и реализация class Printer<T> : Printable { func Print(val: T) { println(val) } } Я ожидал, что я должен иметь возможность использовать Printableпеременную для вывода таких значений: let p:Printable = Printer<Int>() p.Print(67) Компилятор жалуется …
89 ios  xcode  generics  swift 

4
В чем смысл необязательного класса Guava
Я недавно читал об этом и видел людей, использующих этот класс, но почти во всех случаях использование nullтакже сработало бы, если не более интуитивно. Может ли кто-нибудь привести конкретный пример, где можно Optionalбыло бы достичь чего-то, чего nullне удалось бы, или более простым способом? Единственное, что я могу придумать, - …
89 java  generics  guava 


3
C # использовать System.Type в качестве универсального параметра
У меня есть список типов (System.Type), которые нужно запрашивать в базе данных. Для каждого из этих типов мне нужно вызвать следующий метод расширения (который является частью LinqToNhibernate): Session.Linq<MyType>() Однако у меня нет MyType, но я хочу использовать вместо него Type. Что у меня есть: System.Type typeOne; Но я не могу …
88 c#  generics  .net-4.0  types 

12
Как узнать, к какому типу относится каждый объект в ArrayList <Object>?
У меня есть ArrayList, состоящий из различных элементов, импортированных из базы данных, состоящий из строк, чисел, чисел типа double и int. Есть ли способ использовать технику отражающего типа, чтобы узнать, какие данные хранятся в каждом элементе? К вашему сведению: причина того, что существует так много типов данных, заключается в том, …

3
Каков синтаксис конструктора по умолчанию для универсального класса?
Запрещено ли в C # реализовать конструктор по умолчанию для универсального класса? Если нет, то почему приведенный ниже код не компилируется? (Когда я удаляю, &lt;T&gt;он компилируется) Каков тогда правильный способ определения конструктора по умолчанию для универсального класса? public class Cell&lt;T&gt; { public Cell&lt;T&gt;() { } } Ошибка времени компиляции : …
87 c#  .net  generics 

29
Чем хороши дженерики, зачем их использовать?
Я подумал, что предлагаю этот софтбол любому, кто захочет попасть в него из парка. Что такое дженерики, каковы преимущества дженериков, почему, где и как их использовать? Пожалуйста, оставьте это довольно простым. Спасибо.
87 c#  generics  types 

9
как instanceof List <MyType>?
Как я могу заставить такие вещи работать? Я могу проверить, если, (obj instanceof List&lt;?&gt;)но не если (obj instanceof List&lt;MyType&gt;). Как это можно сделать?
87 java  generics 

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