Публикации по теме 'generics'


Ковариация, контравариантность и инвариантность - что они означают? (Часть 2)
Котлин, Ява; и немного дженериков тоже. В первой части этого поста я дал краткое объяснение и привел несколько примеров различных систем типов дисперсии. Как и было обещано, в этом посте мы углубимся в эту тему. Мы выясним, что они на самом деле означают в системах типов Java и Kotlin. Для этого я создам простую структуру наследования, как и раньше. Мы рассмотрим четыре различных сценария для каждого типа дисперсии, в которых имеет смысл: операторы присваивания,..

Обобщения в TypeScript
Дженерики определенно кажутся устрашающими любому, кто к ним не привык. В этом сообщении в блоге я постараюсь сделать их менее загадочными и покажу, как они могут быть полезны, используя более практический подход. Вы можете продолжить на Машинописной площадке , если у вас не настроена локальная среда. Я бы порекомендовал набирать примеры на отдельной вкладке. Первый взгляд Обобщения, как следует из названия, помогают нам создавать больше многоразовых фрагментов кода...

Вопросы по теме 'generics'

Разница между Activator.CreateInstance(string) и Activator.CreateInstance‹T›()
Нет, это не вопрос о дженериках. У меня есть фабричный шаблон с несколькими классами с внутренними конструкторами (я не хочу, чтобы они создавались, если не через фабрику). Моя проблема в том, что CreateInstance завершается с ошибкой «Для...
21037 просмотров
schedule 02.10.2023

Почему компилятор c # выдает Activator.CreateInstance при вызове new с универсальным типом с ограничением new ()?
Когда у вас есть такой код: static T GenericConstruct<T>() where T : new() { return new T(); } Компилятор C # настаивает на вызове Activator.CreateInstance, что значительно медленнее, чем собственный конструктор. У меня есть...
3505 просмотров
schedule 04.03.2022

Как ограничить несколько универсальных типов?
Вот простой синтаксический вопрос (надеюсь): я знаю, как ограничить один общий тип с помощью предложения where, но как ограничить два общих типа? Возможно, самый простой способ — записать то, что я предположил относительно синтаксиса. public...
13890 просмотров
schedule 14.01.2024

Можете ли вы заблокировать общий словарь?
Или вам всегда следует создавать какой-то другой объект блокировки?
7364 просмотров

.NET Generics: использование типа, созданного активатором, в качестве универсального показывает неправильный тип? Требуется обходной путь
Это действительно поставило меня в тупик сегодня. Я уверен, что это просто, но... Вот мой пример кода: using System; using System.Collections; namespace ConsoleApplication1 { class Program { public ArrayList SomeProp { get; set;...
1658 просмотров
schedule 07.09.2022

Spring IoC и универсальный тип интерфейса
Я пытаюсь использовать Spring IoC с таким интерфейсом: public interface ISimpleService<T> { void someOp(T t); T otherOp(); } Может ли Spring предоставить IoC на основе аргумента универсального типа T? Я имею в виду что-то вроде...
27540 просмотров

Реализация IEnumerable
Я использую LINQ, и мне трудно понять, как я могу заставить новые классы «модели предметной области» работать в LINQ при выполнении запросов между таблицами. Я использую Linq to SQL и С# в .NET 3.5. Предположим, мне нужен класс расширенного...
4658 просмотров
schedule 14.02.2024

Как получить тип T от члена универсального класса или метода
Скажем, у меня есть общий член в классе или методе, например: public class Foo<T> { public List<T> Bar { get; set; } public void Baz() { // get type of T } } Когда я создаю экземпляр класса, T...
711524 просмотров
schedule 27.02.2022

Как мне переопределить метод Add в List ‹T› в C #?
В настоящее время я собираюсь создать свою собственную коллекцию, которая была бы похожа на обычный список, за исключением того, что в ней было бы всего 10 элементов. Если элемент был добавлен, когда в списке уже было 10 элементов, то первый элемент...
75338 просмотров
schedule 15.03.2023

Разница между перечислением‹? расширяет ZipEntry› и Enumeration‹ZipEntry›?
Есть ли разница между перечислением‹? расширяет ZipEntry› и Enumeration‹ZipEntry›? Если да, то в чем разница?
2376 просмотров
schedule 21.10.2022

Как я могу создать список, используя дженерики в Java?
Пожалуйста, обратите внимание на следующий фрагмент: public interface MyInterface { public int getId(); } public class MyPojo implements MyInterface { private int id; public MyPojo(int id) { this.id = id; } public...
27158 просмотров
schedule 15.04.2022

Когда бы вы не использовали общие коллекции?
Преимущество использования дженериков заключается в том, что это повышает безопасность типов — вы можете вставить только правильный тип, и вы получите правильный тип, не требуя приведения. Единственная причина, по которой я не могу использовать общие...
2427 просмотров
schedule 01.06.2022

проблемы с дженериками в C# в параметре
У меня есть такой класс: Class foo<T> { anotherfoo<T>; foo(){} foo(foo<T> aFoo) { anotherfoo = aFoo; } } void main() { foo<string> obj1 = new foo<string>(); foo<int> obj2 = new foo<int>(obj1);...
313 просмотров
schedule 06.07.2023

IList‹IClient› метод‹T›(), где T : Iclient не может добавить клиентский объект в список
public IList GetClientsByListofID(IList id) где T : IClient {клиенты IList = new List(); клиенты.Добавить (новый клиент (3)); } Я получаю ошибку компилятора здесь: невозможно преобразовать Bailey.Objects.Client в T Объект клиента...
1951 просмотров
schedule 12.05.2022

List‹T›.Contains() работает очень медленно?
Может ли кто-нибудь объяснить мне, почему функция generics List.Contains() такая медленная? У меня есть List<long> с примерно миллионом чисел и код, который постоянно проверяет, есть ли в этих числах определенное число. Я пытался...
53616 просмотров
schedule 21.04.2023

Есть ли в Objective-C строго типизированные коллекции?
Я новичок в программировании Mac / iPhone и Objective-C. В C # и Java у нас есть «дженерики», классы коллекций, члены которых могут быть только объявленного типа. Например, в C # Dictionary<int, MyCustomObject> может содержать только...
54572 просмотров

Разница между неявным и явным созданием делегатов (с дженериками и без них)
Посмотрите на четыре строки в методе Go() ниже: delegate void Action<T>(T arg); delegate void Action(); void DoSomething<T>(Action<T> action) { //... } void DoSomething(Action action) { //... } void...
4872 просмотров
schedule 05.08.2023

Перегрузка метода, который принимает общий список с разными типами в качестве параметра
Как я могу перегрузить метод, который принимает универсальный список с разными типами в качестве параметра? Например: У меня есть два метода: private static List<allocations> GetAllocationList(List<PAllocation> allocations) {...
1703 просмотров
schedule 21.06.2022

Ошибка стирания Java с несвязанным универсальным методом
Я прочитал другие вопросы, связанные со стиранием, но мне до сих пор не ясно, почему я получаю ошибку компиляции в классе ниже. Другие вопросы касаются методов, которые на самом деле используют общий тип, тогда как я просто пытаюсь реализовать метод,...
4956 просмотров
schedule 02.07.2022

Способ выполнения преобразования между открытыми и закрытыми делегатами
Мне нужно эффективно преобразовать открытый делегат (тот, в котором Target не указан) в закрытый. Я профилировал свой код, и стоимость использования CreateDelegate() для создания закрытого делегата для метода экземпляра составляет значительную долю...
691 просмотров