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

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

15
Сортировка списка IList в C #
Итак, сегодня я столкнулся с интересной проблемой. У нас есть веб-служба WCF, которая возвращает список IList. Ничего особенного, пока я не разобрался. Оказывается, интерфейс IList не имеет встроенного метода сортировки. В конце концов, я ArrayList.Adapter(list).Sort(new MyComparer())решил использовать этот метод для решения проблемы, но мне это показалось немного "гетто". Я играл …
86 c#  generics  sorting  ilist 


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

6
Приведение 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' Полный код выглядит следующим образом, где …
86 c#  generics  casting  enums 

6
Проверить, является ли объект экземпляром типа параметра
Есть ли способ определить, является ли объект экземпляром универсального типа? public <T> test(Object obj) { if (obj instanceof T) { ... } } Это явно не работает. Есть ли альтернатива? Например, я хочу использовать отражение Java для создания экземпляра класса, а затем проверить, имеет ли он тип generic T.

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

14
Почему в C # нельзя сохранить объект List <string> в переменной List <object>
Кажется, что объект List не может быть сохранен в переменной List в C # и даже не может быть явно приведен таким образом. List&lt;string&gt; sl = new List&lt;string&gt;(); List&lt;object&gt; ol; ol = sl; приводит к невозможности неявно преобразовать тип System.Collections.Generic.List&lt;string&gt;вSystem.Collections.Generic.List&lt;object&gt; А потом... List&lt;string&gt; sl = new List&lt;string&gt;(); List&lt;object&gt; ol; ol …

7
Есть ли в .NET встроенный EventArgs <T>?
Я собираюсь создать общий класс EventArgs для аргументов событий, которые содержат один аргумент: public class EventArg&lt;T&gt; : EventArgs { // Property variable private readonly T p_EventData; // Constructor public EventArg(T data) { p_EventData = data; } // Property for EventArgs argument public T Data { get { return p_EventData; } …
85 c#  generics  eventargs 

6
Связаны ли статические члены универсального класса с конкретным экземпляром?
Это скорее документация, чем реальный вопрос. Похоже, что это еще не решено на SO (если я не пропустил это), так что вот: Представьте себе универсальный класс, содержащий статический член: class Foo&lt;T&gt; { public static int member; } Есть ли новый экземпляр члена для каждого конкретного класса или есть только один …
85 c#  .net  generics  static 


3
Особенность вывода типа исключения в Java 8
При написании кода для другого ответа на этом сайте я обнаружил такую ​​особенность: static void testSneaky() { final Exception e = new Exception(); sneakyThrow(e); //no problems here nonSneakyThrow(e); //ERRROR: Unhandled exception: java.lang.Exception } @SuppressWarnings("unchecked") static &lt;T extends Throwable&gt; void sneakyThrow(Throwable t) throws T { throw (T) t; } static &lt;T …

10
Каков «правильный» способ привести Hibernate Query.list () к List <Type>?
Я новичок в Hibernate, и я пишу простой метод для возврата списка объектов, соответствующих определенному фильтру. List&lt;Foo&gt;казался естественным возвращаемым типом. Что бы я ни делал, я не могу сделать компилятор счастливым, если не использую некрасивый @SuppressWarnings. import java.util.List; import org.hibernate.Query; import org.hibernate.Session; public class Foo { public Session acquireSession() { …

1
Объяснение принципа получения и отдачи
Я прочитал книгу О'Рейли, в которой я узнал этот принцип получения результата . Используйте extendsподстановочный знак, когда вы получаете значения только из структуры. Используйте superподстановочный знак, когда вы помещаете только значения в структуру. И не используйте подстановочный знак, когда вы оба хотите получить и поместить из / в структуру. Исключения …
83 java  generics 

11
Обобщения C # и проверка типов
У меня есть метод, который использует IList&lt;T&gt;в качестве параметра. Мне нужно проверить, что это за тип Tобъекта, и что-то сделать на его основе. Я пытался использовать Tзначение, но компилятор не позволяет этого. Мое решение следующее: private static string BuildClause&lt;T&gt;(IList&lt;T&gt; clause) { if (clause.Count &gt; 0) { if (clause[0] is int …
83 c#  generics  types 

5
Java: ограниченные подстановочные знаки или параметр ограниченного типа?
Недавно я прочитал эту статью: http://download.oracle.com/javase/tutorial/extra/generics/wildcards.html Мой вопрос: вместо того, чтобы создавать такой метод: public void drawAll(List&lt;? extends Shape&gt; shapes){ for (Shape s: shapes) { s.draw(this); } } Я могу создать такой метод, и он отлично работает: public &lt;T extends Shape&gt; void drawAll(List&lt;T&gt; shapes){ for (Shape s: shapes) { s.draw(this); …

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