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

92
получить универсальный перечислитель из массива

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

91
Привести объект к T

Я разбираю XML-файл с XmlReaderклассом в .NET, и я подумал, что было бы разумно написать общую функцию синтаксического анализа для общего чтения различных атрибутов. Я придумал такую ​​функцию: private static T ReadData<T>(XmlReader reader, string value) { reader.MoveToAttribute(value);...

91
Как потребовать, чтобы протокол мог быть принят только определенным классом

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

90
Можно ли создать общий метод @helper с помощью Razor?

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

90
Невозможно неявно преобразовать тип 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]);...

89
В чем смысл необязательного класса Guava

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

89
Как использовать общий протокол в качестве типа переменной

Допустим, у меня есть протокол: public protocol Printable { typealias T func Print(val:T) } А вот и реализация class Printer<T> : Printable { func Print(val: T) { println(val) } } Я ожидал, что я должен иметь возможность использовать Printableпеременную для вывода таких значений: let...

88
C # использовать System.Type в качестве универсального параметра

У меня есть список типов (System.Type), которые нужно запрашивать в базе данных. Для каждого из этих типов мне нужно вызвать следующий метод расширения (который является частью LinqToNhibernate): Session.Linq<MyType>() Однако у меня нет MyType, но я хочу использовать вместо него Type. Что у...

87
Чем хороши дженерики, зачем их использовать?

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

87
Как узнать, к какому типу относится каждый объект в ArrayList <Object>?

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

87
Каков синтаксис конструктора по умолчанию для универсального класса?

Запрещено ли в C # реализовать конструктор по умолчанию для универсального класса? Если нет, то почему приведенный ниже код не компилируется? (Когда я удаляю, <T>он компилируется) Каков тогда правильный способ определения конструктора по умолчанию для универсального класса? public class...

87
как instanceof List <MyType>?

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

86
Что такое ключевое слово out в котлине

Я не могу понять и не могу найти значение ключевого слова out в котлине. Вы можете проверить пример здесь: List<out T> Если кто-нибудь может объяснить значение этого. Было бы очень признательно....

86
Сортировка списка IList в C #

Итак, сегодня я столкнулся с интересной проблемой. У нас есть веб-служба WCF, которая возвращает список IList. Ничего особенного, пока я не разобрался. Оказывается, интерфейс IList не имеет встроенного метода сортировки. В конце концов, я ArrayList.Adapter(list).Sort(new MyComparer())решил...

86
Создание универсального метода на C #

Я пытаюсь объединить несколько похожих методов в общий метод. У меня есть несколько методов, которые возвращают значение строки запроса или null, если эта строка запроса не существует или имеет неправильный формат. Это было бы достаточно просто, если бы все типы изначально допускали значение NULL,...

86
Приведение Int к Generic Enum в C #

Подобно Cast int to enum в C #, но мое перечисление является параметром Generic Type. Как лучше всего с этим справиться? Пример: private T ConvertEnum<T>(int i) where T : struct, IConvertible { return (T)i; } Генерирует ошибку компилятора Cannot convert type 'int' to 'T' Полный код выглядит...