Запитання з тегом «generics»

Генеріки - це форма параметричного поліморфізму, що зустрічається в різних мовах, включаючи мови NET, Java, Swift та Rust.

18
Передача одного елемента як IEnumerable <T>
Чи є загальний спосіб передачі одного елемента типу Tметоду, який очікує IEnumerable&lt;T&gt;параметр? Мова - C #, рамкова версія 2.0. В даний час я використовую хелперний метод (це .Net 2.0, тому у мене є ціла купа асистентних методів лиття / проектування, схожих на LINQ), але це просто здається нерозумним: public static …
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, якщо два його операнди посилаються на один і той же об'єкт. Для типу рядка == порівнює значення рядків. …

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&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 generics - чому дозволено "розширює 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)) { return (T)columnValue; } return null; …
288 c#  generics 

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

5
Який тип вищого роду у Скалі?
Ви можете знайти таке в Інтернеті: Конструктор вищого типу == type? 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 = name; …


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.