Высказывание У меня есть следующие интерфейсыC в интерфейсе
using System;
public interface IInput
{
}
public interface IOutput<Shipper> where Shipper : IShipper
{
}
public interface IShipper
{
}
public interface IProvider<TInput, TOutput>
where TInput : IInput
where TOutput : IOutput<IShipper>
{
}
Я могу создать следующие классы:
public class Input : IInput
{
}
public class Shipper : IShipper
{
}
public class Output : IOutput<Shipper>
{
}
Я пытался несколько способов, чтобы создать класс, реализующий IProvider с не повезло?
Ex:
public class Provider : IProvider<Input, Output>
{
}
Error: The type 'Output' cannot be used as type parameter 'TOutput' in the generic type or method 'IProvider<TInput,TOutput>'. There is no implicit reference conversion from 'Output' to 'IOutput<IShipper>'
или
public class Provider : IProvider<Input, Output<IShipper>>
{
}
Error: The non-generic type 'Output' cannot be used with type arguments
Как я могу это сделать?
Чтобы следовать соглашениям, 'Shipper' в определении' IOutput 'должен быть' TShipper'. –