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

Общие ограничения на функцию
Я хочу написать общую функцию, которая имеет ограничение на тип. В частности, я хочу что-то вроде этого: bool IsInList<T>(T value, params T[] args) { bool found = false; foreach(var arg in args) { if(arg == value)...
5409 просмотров
schedule 12.03.2024

Можно ли указать в ограничении универсального типа, что оно должно реализовывать универсальный тип?
Вот что я хотел бы сделать: public interface IRepository<TSet<TElement>> where TSet<TElement> : IEnumerable<TElement> { TSet<TEntity> GetSet<TEntity>(); } Возможна ли такая конструкция в .NET?...
492 просмотров
schedule 10.05.2024

Ограничение класса типа другого вида
Я возился с классами общего типа для списков в Haskell. class HasEmpty a where empty :: a isEmpty :: a -> Bool class HasEmpty (l a) => List l where cons :: a -> l a -> l a uncons :: l a -> (a, l a) Чтобы дать вам...
324 просмотров
schedule 03.01.2024

Почему проверка null приводит к ограничению равенства в F#?
Если универсальный тип сравнивается с null (и только с null ), это заставляет компилятор ограничивать тип как допускающий значение NULL (что нормально) и как приравниваемый. Почему последнее? Кажется, что простое сравнение с null должно быть...
147 просмотров
schedule 25.03.2024

Как указать ограничение, в котором говорится о наборе типов, допускающих значение NULL?
Я пытаюсь создать универсальный метод проверки аргументов, который проверяет параметры коллекции на наличие нулевого значения, пустого или содержащего нулевой элемент . public void Foo(ICollection<MyType> bar) { // Validate parameters...
858 просмотров

Функция Swift pow() не будет принимать Doubles в качестве аргументов
Я создал этот infix operator ^^ вместо использования функции pow : infix operator ^^ { associativity left precedence 155 } func ^^ <T: IntegerLiteralConvertible>(left: T, right: T) -> T { return pow(left as Double, right as...
3188 просмотров

Порядок ограничений типов в F#
Это работает в F # 4.0: type Something<'a, 'b when 'b :> seq<'b>>() = Это не: type Something<'b when 'b :> seq<'b>, 'a>() = Неожиданный символ ',' в названии типа. Ожидается '>' или другой токен....
126 просмотров
schedule 03.11.2022

Почему нет ограничений на TStartup в Microsoft.Owin.Hosting.WebApp Start‹TStartup›
Я играл с проектом. Меня заинтересовала следующая строка, где Startup — это пользовательский класс. Microsoft.Owin.Hosting.WebApp.Start<Startup>(url); И когда я исследовал класс Startup , я обнаружил, что он не наследуется ни от...
14 просмотров
schedule 20.09.2022