Вопросы по теме '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 просмотров
schedule
27.10.2022
Функция 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 просмотров
schedule
24.11.2023
Порядок ограничений типов в 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