Скрыть аргументы универсального типа за результатами конкретного типа в CS0535C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Скрыть аргументы универсального типа за результатами конкретного типа в CS0535

Сообщение Гость »

У меня довольно академический вопрос: почему технически невозможно использовать следующий код?

Код: Выделить всё

// abstractions
public record MappingRequest(
TContract Contract, TEntity Entity);

public interface IMapper
{
TResult Map(MappingRequest request);
}

// more readable abstraction
public interface ILocationMapper
: IMapper
{
}

// concrete
public record LocationResult;
public record LocationContract;
public record LocationEntity;

public record LocationRequest(LocationContract Contract, LocationEntity Entity)
: MappingRequest(Contract, Entity);

public class LocationMapper : ILocationMapper
{
public LocationResult Map(LocationRequest request)
{
return new LocationResult();
}
}
Это дает мне следующую ошибку компилятора:

Ошибка CS0535: «LocationMapper» не реализует член интерфейса «IMapper» .Map(MappingRequest)'

Почему компилятор не может «вывести» (не полностью) уверен, правильный ли это термин здесь), который LocationRequest наследует от MappingRequest?

Подробнее здесь: https://stackoverflow.com/questions/781 ... -in-cs0535
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»