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

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


27
Преобразовать общий список / перечисляемый в DataTable?
У меня есть несколько методов, которые возвращают разные общие списки. Существует ли в .net какой-либо статический метод класса или любой другой способ преобразования любого списка в таблицу данных? Единственное, что я могу себе представить, это использовать Reflection для этого. Если у меня есть это: List<Whatever> whatever = new List<Whatever>(); (Следующий …
261 c#  list  generics  datatable 


4
ReSharper предупреждает: «Статическое поле в универсальном типе»
public class EnumRouteConstraint<T> : IRouteConstraint where T : struct { private static readonly Lazy<HashSet<string>> _enumNames; // <-- static EnumRouteConstraint() { if (!typeof(T).IsEnum) { throw new ArgumentException( Resources.Error.EnumRouteConstraint.FormatWith(typeof(T).FullName)); } string[] names = Enum.GetNames(typeof(T)); _enumNames = new Lazy<HashSet<string>>(() => new HashSet<string> ( names.Select(name => name), StringComparer.InvariantCultureIgnoreCase )); } public bool Match(HttpContextBase httpContext, …

3
Общий метод с несколькими ограничениями
У меня есть общий метод, который имеет два общих параметра. Я попытался скомпилировать код ниже, но он не работает. Это ограничение .NET? Можно ли иметь несколько ограничений для разных параметров? public TResponse Call<TResponse, TRequest>(TRequest request) where TRequest : MyClass, TResponse : MyOtherClass
251 c#  generics  .net-3.5 


11
Как использовать Class <T> в Java?
В этом вопросе есть хорошее обсуждение дженериков и того, что они действительно делают за кулисами , поэтому мы все знаем, что Vector&lt;int[]&gt;это вектор целочисленных массивов и HashTable&lt;String, Person&gt;таблица, ключами которой являются строки и значения Persons. Однако, то, что пни меня, - использование Class&lt;&gt;. Предполагается, что java-класс также Classдолжен принимать имя …

17
Как вы приведете список супертипов к списку подтипов?
Например, допустим, у вас есть два класса: public class TestA {} public class TestB extends TestA{} У меня есть метод, который возвращает a, List&lt;TestA&gt;и я хотел бы привести все объекты в этом списке, TestBчтобы в итоге я получил List&lt;TestB&gt;.

3
Доступ без учета регистра для универсального словаря
У меня есть приложение, которое использует управляемые DLL. Один из этих dll возвращает общий словарь: Dictionary&lt;string, int&gt; MyDictionary; Словарь содержит ключи с прописными и строчными буквами. С другой стороны, я получаю список потенциальных ключей (строка), однако я не могу гарантировать случай. Я пытаюсь получить значение в словаре, используя ключи. Но, …
244 c#  generics  dictionary 

7
Стирание типа дженериков Java: когда и что происходит?
Я читал об удалении типов Java на веб-сайте Oracle . Когда происходит стирание типа? Во время компиляции или во время выполнения? Когда класс загружается? Когда будет создан экземпляр класса? Многие сайты (включая упомянутое выше официальное руководство) говорят, что стирание типов происходит во время компиляции. Если информация о типе полностью удаляется …


5
Как передать параметры в Activator.CreateInstance <T> ()
Я хочу создать экземпляр типа, который я указываю в общем методе, который у меня есть. Этот тип имеет несколько перегруженных конструкторов. Я хотел бы иметь возможность передавать аргументы конструкторам, но Activator.CreateInstance&lt;T&gt;() не видит, чтобы иметь это в качестве опции. Есть ли другой способ сделать это?

11
Преобразование общего типа из строки
У меня есть класс, который я хочу использовать для хранения «свойств» для другого класса. Эти свойства просто имеют имя и значение. В идеале я хотел бы иметь возможность добавлять типизированные свойства, чтобы возвращаемое «значение» всегда имело тот тип, который я хочу. Тип всегда должен быть примитивным. Этот класс подклассов абстрактный …

10
Создать экземпляр универсального типа, для конструктора которого требуется параметр?
Если BaseFruitесть конструктор, который принимает int weight, могу ли я создать кусочек фрукта в общем методе, подобном этому? public void AddFruit&lt;T&gt;()where T: BaseFruit{ BaseFruit fruit = new T(weight); /*new Apple(150);*/ fruit.Enlist(fruitManager); } Пример добавлен за комментариями. Кажется, я могу сделать это, только если я дам BaseFruitконструктор без параметров, а затем …
230 c#  .net  generics 

13
преобразовать список объектов из одного типа в другой с помощью лямбда-выражения
У меня есть цикл foreach, читающий список объектов одного типа и создающий список объектов другого типа. Мне сказали, что лямбда-выражение может достичь того же результата. var origList = List&lt;OrigType&gt;(); // assume populated var targetList = List&lt;TargetType&gt;(); foreach(OrigType a in origList) { targetList.Add(new TargetType() {SomeValue = a.SomeValue}); } Любая помощь будет …
224 c#  generics  lambda 

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