Вопросы по теме 'generic-constraints'

Почему Nullable ‹T› не соответствует типу ссылки для общих ограничений
Возможный дубликат: Тип, допускающий значение NULL, как общий параметр возможен? Я наткнулся на очень странную вещь с ограничениями универсального типа. У меня есть такой класс: public SomeClass<T> where T:class { }...
2403 просмотров

Простое общее недоразумение
Не могли бы вы помочь мне понять ошибку в этом случае? public interface IGeneralInterface { } public class A : IGeneralInterface { } public class B : IGeneralInterface { } public class SomeClass<TGenericType> where TGenericType :...
104 просмотров

Создание экземпляра универсального класса с ограничениями по типу без его подкласса
Фон [Перейдите к Вопросу , если предыстория вас не интересует] Я наткнулся на это универсальное определение класса, читая на днях, и на некоторое время оно поставило меня в тупик: public abstract class Entity<T> where T :...
123 просмотров
schedule 28.08.2022

Ограничение базового класса для универсального класса, определяющее сам класс
Вчера я объяснял своим друзьям общие ограничения C#. При демонстрации ограничения where T : CLASSNAME я сделал что-то вроде этого: public class UnusableClass<T> where T : UnusableClass<T> { public static int method(T input){...
1589 просмотров

Почему именно эти специальные классы?
После прочтения этот вопрос с вопросом, что такое "специальный класс", у меня остался вопрос, почему шесть классов System.Object , System.Array , System.Delegate , System.Enum и System.ValueType были выбраны и жестко закодированы как...
353 просмотров
schedule 13.04.2023

Как извлечь ограничения универсального метода с помощью отражения в С#?
Учитывая объект типа System.Reflection.MethodInfo , как я могу извлечь общие ограничения параметров? Что-то не могу найти разумной информации по этому поводу.
605 просмотров

Ошибка F # в общем ограничении
Следующий код F # let f<'T when 'T: (member Id:int)> (t:'T) = t.Id не принимается со следующей ошибкой: Ошибка FS0670 ​​Этот код не является достаточно общим. Переменная типа ^ T when ^ T: (member get_Id: ^ T -> int) не может...
351 просмотров
schedule 28.09.2022

Исключить интерфейс из общего ограничения
Я создаю общий метод, в котором тип T будет int, long, float или double. Я искал и нашел это решение и теперь хочу исключить DateTime из общих ограничений. Я хочу что-то вроде: class SomeGeneric<T> where T : unmanaged, IComparable,...
90 просмотров
schedule 05.06.2023

Как мне интерпретировать аргумент метода сравнения (Функция‹? super T,? extends U› keyExtractor)?
Полная подпись метода: public static <T, U extends Comparable<? super U>> Comparator<T> comparing( Function<? super T, ? extends U> keyExtractor) Я изучаю лямбда-выражения, и у меня есть этот фрагмент кода,...
466 просмотров

Сужение типов не работает должным образом с общими ограничениями
У меня есть ситуация, когда общий тип ограничен типом объединения, но я считаю, что это не приводит к тому, что сужение типа работает должным образом. Приведенный ниже фрагмент кода показывает, что происходит. function somefunc<T extends string...
104 просмотров