У меня есть некоторые проблемы с тем, чтобы получить это общее ограничение для работы.Определение ограничения типа общего интерфейса для значений и ссылочных типов
У меня есть два интерфейса ниже.
Я хочу, чтобы иметь возможность ограничивать тип ICommandHandlers TResult только для типов, реализующих ICommandResult, но у ICommandResult есть свои ограничения, которые необходимо предоставить. ICommandResult может потенциально вернуть значение или ссылочный тип из свойства Result. Мне что-то не хватает? Благодарю.
public interface ICommandResult<out TResult>
{
TResult Result { get; }
}
public interface ICommandHandler<in TCommand, TResult> where TCommand : ICommand
where TResult : ICommandResult<????>
{
TResult Execute(TCommand command);
}
Я не вижу, что это связано с ссылочными типами и типами значений. –
Свойство ICommandResult Result может быть либо значением, либо ссылочным типом. – Matt
Так может ли любой другой общий тип, если только он не ограничен «где T: class/struct», ? –