Публикации по теме '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 просмотров
schedule
01.09.2022
.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 просмотров
schedule
17.04.2022
Реализация 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 просмотров
schedule
13.04.2024
Разница между неявным и явным созданием делегатов (с дженериками и без них)
Посмотрите на четыре строки в методе 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 просмотров
schedule
16.11.2023