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

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

Если у меня есть подпись метода, например public string myMethod<T>( ... ) Как я могу внутри метода получить имя типа, которое было задано как аргумент типа? Я бы хотел сделать что-то подобное typeof(T).FullName, но это действительно работает ......

100
Справка по ошибке универсальных шаблонов C # - «Тип 'T' должен быть типом значения, не допускающим значения NULL»

Я новичок в C # и не понимаю, почему следующий код не работает. 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...

99
Как в C # создать экземпляр переданного универсального типа внутри метода?

Как я могу создать экземпляр типа T внутри моего InstantiateType<T>метода ниже? Я получаю сообщение об ошибке: «T» - это «параметр типа», но используется как «переменная». : (ПРОКРУТИТЕ ВНИЗ, ЧТОБЫ ОТВЕЧИТЬ ОТВЕТ) using System; using System.Collections.Generic; using System.Linq; using...

98
Есть ли в .NET способ проверить, содержит ли список a все элементы списка b?

У меня есть такой способ: namespace ListHelper { public class ListHelper<T> { public static bool ContainsAllItems(List<T> a, List<T> b) { return b.TrueForAll(delegate(T t) { return a.Contains(t); }); } } } Цель этого метода - определить, содержит ли список все элементы другого...

98
Эквивалент Swift для макросов MIN и MAX

В C / Objective-C можно найти минимальное и максимальное значение между двумя числами, используя макросы MIN и MAX. Swift не поддерживает макросы, и похоже, что в языковой / базовой библиотеке нет эквивалентов. Если один идти с пользовательским решением, может быть основано на дженерики , как этот...

97
Создать список примитивных int?

Есть ли способ создать список примитивов int или любых примитивов в java, как показано ниже? List<int> myList = new ArrayList<int>(); Кажется, я могу List myList = new ArrayList(); и добавьте "int" в этот список. Но тогда это означало бы, что я могу добавить что угодно в этот список....

97
Элегантный способ объединить несколько коллекций элементов?

Скажем, у меня есть произвольное количество коллекций, каждая из которых содержит объекты одного типа (например, List<int> fooи List<int> bar). Если бы эти коллекции сами были в коллекции (например, типа List<List<int>>, я мог бы использовать, SelectManyчтобы объединить их...

96
В чем разница между <?> И <? расширяет Object> в Java Generics?

Я видел подстановочный знак, который раньше использовался для обозначения любого объекта, но недавно видел использование: <? extends Object> Поскольку все объекты расширяют Object, являются ли эти два использования синонимами?...

95
Лучший способ проверить, является ли универсальный тип строкой? (C #)

У меня есть общий класс, который должен разрешать любой тип, примитивный или другой. Единственная проблема с этим - использование default(T). Когда вы вызываете default для типа значения или строки, он инициализирует его разумным значением (например, пустой строкой). Когда вы вызываете...

95
ThreadStatic против ThreadLocal <T>: общий лучше, чем атрибут?

[ThreadStatic]определяется с помощью атрибута, а ThreadLocal<T>использует общий. Почему были выбраны разные дизайнерские решения? Каковы преимущества и недостатки использования универсальных атрибутов в этом случае?...

94
Могу ли я использовать инициализатор коллекции для записей Dictionary <TKey, TValue>?

Я хочу использовать инициализатор коллекции для следующего фрагмента кода: public Dictionary<int, string> GetNames() { Dictionary<int, string> names = new Dictionary<int, string>(); names.Add(1, "Adam"); names.Add(2, "Bart"); names.Add(3, "Charlie"); return names; } Обычно это...

94
List <T> .Contains () работает очень медленно?

Может ли кто-нибудь объяснить мне, почему List.Contains()функция дженериков такая медленная? У меня есть List<long>около миллиона номеров, и код, который постоянно проверяет, есть ли конкретное число в этих числах. Я пробовал делать то же самое, используя Dictionary<long, byte>и...

94
void в дженериках C #?

У меня есть общий метод, который принимает запрос и предоставляет ответ. public Tres DoSomething<Tres, Treq>(Tres response, Treq request) {/*stuff*/} Но мне не всегда нужен ответ на свой запрос, и я не всегда хочу передавать данные запроса, чтобы получить ответ. Я также не хочу полностью...

93
Есть ли разумный подход к параметрам типа «по умолчанию» в C # Generics?

В шаблонах C ++ можно указать, что определенный параметр типа является значением по умолчанию. Т.е., если явно не указано иное, будет использоваться тип T. Можно ли это сделать или приблизить на C #? Я ищу что-то вроде: public class MyTemplate<T1, T2=string> {} Таким образом, экземпляр типа,...

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

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