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

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

6
SortedList <>, SortedDictionary <> та Dictionary <>
Я знаходжу це SortedList&lt;TKey, TValue&gt; SortedDictionary&lt;TKey, TValue&gt;і Dictionary&lt;TKey, TValue&gt;реалізую однакові інтерфейси. Коли слід обирати SortedListі SortedDictionaryбільше Dictionary? У чому різниця між застосуванням SortedListта SortedDictionaryтерміном його застосування?

5
Швидкий еквівалент для макросів MIN і MAX
У C / Objective-C можна знайти мінімальне та максимальне значення між двома номерами, використовуючи макроси MIN та MAX. Swift не підтримує макроси, і здається, що в мовній / базовій бібліотеці немає еквівалентів. Якщо один йти з призначеним для користувача рішенням, може бути засноване на дженерики , як цей один ?
97 generics  swift 


10
Створити список примітивних int?
Чи є спосіб створити список примітивних int або будь-яких примітивів у Java, як показано нижче? List&lt;int&gt; myList = new ArrayList&lt;int&gt;(); Здається, я можу це зробити List myList = new ArrayList(); та додайте "int" у цей список. Але тоді це означало б, що я можу додати що завгодно до цього списку. …

3
ThreadStatic проти ThreadLocal <T>: загальний краще, ніж атрибут?
[ThreadStatic]визначається за допомогою атрибута, тоді як ThreadLocal&lt;T&gt;використовує загальний. Чому були обрані різні дизайнерські рішення? Які переваги та недоліки використання загального над атрибутами в цьому випадку?


7
Чи можу я використовувати ініціалізатор колекції для записів у словнику <TKey, TValue>?
Я хочу використовувати ініціалізатор колекції для наступного біта коду: public Dictionary&lt;int, string&gt; GetNames() { Dictionary&lt;int, string&gt; names = new Dictionary&lt;int, string&gt;(); names.Add(1, "Adam"); names.Add(2, "Bart"); names.Add(3, "Charlie"); return names; } Тож зазвичай це має бути щось на зразок: return new Dictionary&lt;int, string&gt; { 1, "Adam", 2, "Bart" ... Але який …

7
порожнеча в C # generics?
У мене є загальний метод, який приймає запит і надає відповідь. public Tres DoSomething&lt;Tres, Treq&gt;(Tres response, Treq request) {/*stuff*/} Але мені не завжди потрібна відповідь на мій запит, і я не завжди хочу подавати дані запиту, щоб отримати відповідь. Я також не хочу копіювати та вставляти методи в цілому, щоб …
94 c#  generics 

11
Елегантний спосіб поєднати кілька колекцій елементів?
Скажімо, у мене є довільна кількість колекцій, кожна з яких містить об’єкти одного типу (наприклад, List&lt;int&gt; fooі List&lt;int&gt; bar). Якби ці колекції самі були в колекції (наприклад, типу List&lt;List&lt;int&gt;&gt;, я міг SelectManyби об'єднати їх усі в одну колекцію. Однак, якщо ці колекції вже не в одній колекції, я складаю враження, …


6
Найкращий спосіб перевірити, чи є загальний тип рядком? (C #)
У мене є загальний клас, який повинен дозволяти будь-який тип, примітивний чи інший. Єдина проблема з цим - використання default(T). Коли ви викликаєте за замовчуванням тип значення або рядок, він ініціалізує його до розумного значення (наприклад, порожнього рядка). Коли ви викликаєте default(T)об'єкт, він повертає значення null. З різних причин нам …
93 c#  generics 

8
List <T> .Contains () дуже повільний?
Хто-небудь може пояснити мені, чому загальна List.Contains()функція працює так повільно? У мене є List&lt;long&gt;близько мільйона номерів, і код, який постійно перевіряє, чи є в цих номерах певний номер. Я спробував зробити те саме, використовуючи Dictionary&lt;long, byte&gt;та Dictionary.ContainsKey()функцію, і це було приблизно в 10-20 разів швидше, ніж у списку. Звичайно, я …
93 .net  arrays  generics  list 



7
Неможливо явно спеціалізувати загальну функцію
У мене проблема з таким кодом: func generic1&lt;T&gt;(name : String){ } func generic2&lt;T&gt;(name : String){ generic1&lt;T&gt;(name) } результат generic1 (ім'я) до помилки компілятора "Неможливо явно спеціалізувати загальну функцію" Чи є спосіб уникнути цієї помилки? Я не можу змінити підпис функції generic1, тому вона повинна бути (String) -&gt; Void
92 generics  swift 

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