Mam pewne problemy z uzyskaniem tego ogólnego ograniczenia do działania.Definiowanie ograniczenia typu ogólnego interfejsu dla wartości i typów odniesienia
Mam dwa interfejsy poniżej.
Chcę móc ograniczyć typ TRommultommandHandlers TResult do używania tylko typów implementujących ICommandResult, ale ICommandResult ma własne ograniczenia, które muszą zostać dostarczone. ICommandResult może potencjalnie zwrócić wartość lub typ odniesienia z jego właściwości Result. Czy brakuje mi czegoś oczywistego? Dzięki.
public interface ICommandResult<out TResult>
{
TResult Result { get; }
}
public interface ICommandHandler<in TCommand, TResult> where TCommand : ICommand
where TResult : ICommandResult<????>
{
TResult Execute(TCommand command);
}
Nie widzę, co to ma do czynienia z typów odniesienia i typów wartości –
Właściwość Wynik ICommandResult może być wartością lub typem odniesienia. – Matt
Podobnie jak każdy inny typ ogólny, chyba że jest ograniczony do "where T: class/struct" ? –