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

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

18
Передача одного элемента как IEnumerable <T>
Есть ли общий способ передачи одного элемента типа Tв метод, который ожидает IEnumerable&lt;T&gt;параметр? Язык - C #, версия фреймворка 2.0. В настоящее время я использую вспомогательный метод (это .Net 2.0, поэтому у меня есть целая куча вспомогательных методов приведения / проектирования, похожих на LINQ), но это просто кажется глупым: public …
377 c#  .net  generics  ienumerable 

22
Есть ли ограничение, которое ограничивает мой универсальный метод числовыми типами?
Может кто-нибудь сказать мне, есть ли способ с обобщениями ограничить аргумент универсального типа Tтолько: Int16 Int32 Int64 UInt16 UInt32 UInt64 Я знаю whereключевое слово, но не могу найти интерфейс только для этих типов, Что-то вроде: static bool IntegerFunction&lt;T&gt;(T value) where T : INumeric
364 c#  generics  constraints 

12
Не может ли оператор == быть применен к универсальным типам в C #?
Согласно документации ==оператора в MSDN , Для предопределенных типов значений оператор равенства (==) возвращает true, если значения его операндов равны, в противном случае - false. Для ссылочных типов, отличных от string, == возвращает true, если два его операнда ссылаются на один и тот же объект. Для типа строки == сравнивает …

16
Проверьте, является ли класс производным от универсального класса
У меня есть общий класс в моем проекте с производными классами. public class GenericClass&lt;T&gt; : GenericInterface&lt;T&gt; { } public class Test : GenericClass&lt;SomeType&gt; { } Есть ли способ узнать, является ли Typeобъект производным GenericClass? t.IsSubclassOf(typeof(GenericClass&lt;&gt;)) не работает.
309 c#  generics  reflection 

8
IEnumerable и Recursion с использованием доходности
У меня есть IEnumerable&lt;T&gt;метод, который я использую, чтобы найти элементы управления на странице WebForms. Метод рекурсивный, и у меня возникают некоторые проблемы с возвратом yield returnнужного мне типа, когда возвращается значение рекурсивного вызова. Мой код выглядит следующим образом: public static IEnumerable&lt;Control&gt; GetDeepControlsByType&lt;T&gt;(this Control control) { foreach(Control c in control.Controls) { …

8
Обобщения Java - почему «расширяет T» разрешено, но не «реализует T»?
Интересно, есть ли в Java особая причина использовать всегда " extends", а не " implements" для определения границ параметров типа. Пример: public interface C {} public class A&lt;B implements C&gt;{} запрещено, но public class A&lt;B extends C&gt;{} правильно. В чем причина этого?



13
Нулевое или стандартное сравнение универсального аргумента в C #
У меня есть общий метод, определенный следующим образом: public void MyMethod&lt;T&gt;(T myArgument) Первое, что я хочу сделать, это проверить, является ли значение myArgument значением по умолчанию для этого типа, примерно так: if (myArgument == default(T)) Но это не компилируется, потому что я не гарантировал, что T будет реализовывать оператор ==. …
288 c#  generics 

11
Обнуляемый тип в качестве общего параметра возможно?
Я хочу сделать что-то вроде этого: myYear = record.GetValueOrNull&lt;int?&gt;("myYear"), Обратите внимание на обнуляемый тип в качестве универсального параметра. Так как GetValueOrNullфункция могла вернуть ноль, моя первая попытка была такой: public static T GetValueOrNull&lt;T&gt;(this DbDataRecord reader, string columnName) where T : class { object columnValue = reader[columnName]; if (!(columnValue is DBNull)) …
288 c#  generics 

6
Использование Mockito для моделирования классов с общими параметрами
Есть ли чистый метод насмешки над классом с общими параметрами? Скажем, я должен смоделировать класс, Foo&lt;T&gt;который мне нужно передать в метод, который ожидает Foo&lt;Bar&gt;. Я могу сделать следующее достаточно легко: Foo mockFoo = mock(Foo.class); when(mockFoo.getValue).thenReturn(new Bar()); Предполагая, getValue()возвращает универсальный тип T. Но это будет иметь котят, когда я позже передам …
280 java  generics  mockito 

5
Что такое более высокий тип в Scala?
Вы можете найти следующее в Интернете: Тип с более высоким родом == Конструктор типа? class AClass[T]{...} // For example, class List[T] Некоторые говорят, что это тип с более высоким родом, потому что он абстрагируется от типов, которые будут соответствовать определению. Типы с более высоким родом - это типы, которые принимают …

17
По какой причине я не могу создавать универсальные типы массивов в Java?
Какова причина, почему Java не позволяет нам делать private T[] elements = new T[initialCapacity]; Я мог понять, что .NET не позволил нам сделать это, так как в .NET у вас есть типы значений, которые во время выполнения могут иметь разные размеры, но в Java все виды T будут ссылками на …

3
Collections.emptyList () возвращает список <Object>?
У меня возникли некоторые проблемы при навигации по правилу Java для определения параметров универсального типа. Рассмотрим следующий класс, который имеет необязательный параметр списка: import java.util.Collections; import java.util.List; public class Person { private String name; private List&lt;String&gt; nicknames; public Person(String name) { this(name,Collections.emptyList()); } public Person(String name,List&lt;String&gt; nicknames) { this.name = …


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