この一般的な制約を機能させるのに問題があります。
以下に2つのインターフェースがあります。
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 );
}