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

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

5
Чи існує розумний підхід до параметрів типу “за замовчуванням” у C # Generics?
У шаблонах C ++ можна вказати, що певний параметр типу є типовим. Тобто, якщо це явно не вказано, він буде використовувати тип T. Чи можна це зробити або наблизити в C #? Я шукаю щось на зразок: public class MyTemplate<T1, T2=string> {} Так що екземпляр типу, який явно не вказує …

7
отримати загальний перечислювач з масиву
Як в C # отримати загальний перечислювач із заданого масиву? У наведеному нижче коді MyArrayє масив MyTypeоб’єктів. Я хотів би отримати MyIEnumeratorза показаним способом, але, схоже, я отримую порожній перелічувач (хоча я це підтвердив MyArray.Length > 0). MyType[] MyArray = ... ; IEnumerator<MyType> MyIEnumerator = MyArray.GetEnumerator() as IEnumerator<MyType>;

4
Як вимагати, щоб протокол був прийнятий лише певним класом
Я хочу цей протокол: protocol AddsMoreCommands { /* ... */ } лише для прийняття класами, які успадковують від класу UIViewController. Ця сторінка говорить мені, що я можу вказати, що вона приймається класом (на відміну від структури) лише шляхом письма protocol AddsMoreCommands: class { } але я не можу зрозуміти, як …

8
Передати об'єкт Т
Я аналізую XML-файл із XmlReaderкласом у .NET і вважав, що було б розумно написати загальну функцію синтаксичного аналізу для загального читання різних атрибутів. Я придумав таку функцію: private static T ReadData<T>(XmlReader reader, string value) { reader.MoveToAttribute(value); object readData = reader.ReadContentAsObject(); return (T)readData; } Як я зрозумів, це працює не повністю, …
90 c#  generics  casting 

9
Неможливо неявно перетворити тип 'Int' у 'T'
Я можу зателефонувати Get<int>(Stat);абоGet<string>(Name); Але при компіляції я отримую: Неможливо неявно перетворити тип 'int' у 'T' і те саме для string. public T Get<T>(Stats type) where T : IConvertible { if (typeof(T) == typeof(int)) { int t = Convert.ToInt16(PlayerStats[type]); return t; } if (typeof(T) == typeof(string)) { string t = …
90 c#  generics 


4
Який сенс у факультативному класі Гуави
Нещодавно я читав про це і бачив людей, які користуються цим класом, але майже у всіх випадках використання nullтакож спрацювало б, якби не інтуїтивніше. Хтось може навести конкретний приклад, коли можна Optionalбуло б досягти чогось, чого nullне вдалося чи набагато чистішим чином? Єдине, що я можу придумати, це використовувати його …
89 java  generics  guava 

4
Чи можна створити загальний метод @helper за допомогою Razor?
Я намагаюся написати помічника в Razor, який виглядає так: @helper DoSomething<T, U>(Expression<Func<T, U>> expr) where T : class На жаль, синтаксичний аналізатор вважає, що <Tце початок елемента HTML, і в підсумку я маю синтаксичну помилку. Чи можна створити помічника за допомогою Razor, який є загальним методом? Якщо так, то який …

3
Як використовувати загальний протокол як тип змінної
Скажімо, у мене є протокол: public protocol Printable { typealias T func Print(val:T) } І ось реалізація class Printer<T> : Printable { func Print(val: T) { println(val) } } Я сподівався, що я повинен вміти використовувати Printableзмінну для друку таких значень: let p:Printable = Printer<Int>() p.Print(67) Компілятор скаржиться на цю …
89 ios  xcode  generics  swift 


3
C # використовуйте System.Type як загальний параметр
У мене є список типів (System.Type), які потрібно запитувати в базі даних. Для кожного з цих типів мені потрібно викликати наступний метод розширення (який є частиною LinqToNhibernate): Session.Linq<MyType>() Однак у мене немає MyType, але я хочу натомість використовувати Type. Що у мене є: System.Type typeOne; Але я не можу виконати …
88 c#  generics  .net-4.0  types 

12
Як дізнатись, якого типу є кожен об’єкт у ArrayList <Object>?
У мене є ArrayList, що складається з різних елементів, імпортованих з db, що складається з рядків, чисел, дублів та ints. Чи можна використати техніку типу відображення, щоб з’ясувати, що містить кожен тип даних у кожному елементі? FYI: Причина того, що існує так багато типів даних, полягає в тому, що це …

3
Який синтаксис для конструктора за замовчуванням для загального класу?
Чи заборонено в C # реалізовувати конструктор за замовчуванням для загального класу? Якщо ні, чому код нижче не компілюється? (Коли я видаляю &lt;T&gt;його компілюється) Який тоді правильний спосіб визначення конструктора за замовчуванням для загального класу? public class Cell&lt;T&gt; { public Cell&lt;T&gt;() { } } Помилка часу компіляції : Помилка 1 …
87 c#  .net  generics 

29
Що класного в дженериках, навіщо їх використовувати?
Я думав, що запропоную цей софтбол тому, хто захоче вибити його з парку. Що таке дженерики, які переваги дженериків, чому, де, як я повинен їх використовувати? Будь ласка, зберігайте його досить базовим. Дякую.
87 c#  generics  types 


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