У меня возникла проблема с реализацией интерфейса с сигнатурой, имеющей интерфейс.Как реализовать интерфейс, имеющий подпись типа интерфейса с общим классом
public interface IReport
{
IReportOutput Execute(IReportInput input);
}
public class ReportBase<TInput, TOutput> : IReport where TInput : IReportInput, new() where TOutput : IReportOutput, new()
{
public TOutput Execute(TInput input)
{
}
}
Это дает мне ошибка компиляции времени интерфейс не будет реализован, это может быть сделано или нет, я просто хочу, чтобы реализовать метод интерфейса с различными входными и выходными классами.
сигнатура метода в интерфейсе ожидает объект типа 'IReportInput' но конкретная реализация использует' TInput'. 2 подписи не совпадают, следовательно, ошибка. –
'IReport abc = <некоторый экземпляр ReportBase>; abc.Execute (<некоторая другая реализация IReportInput>); 'см. проблему? –