我在让这个通用约束起作用时遇到了一些麻烦。
我下面有两个接口。
我希望能够将 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 );
}