Có một số vấn đề trong việc thực hiện ràng buộc chung này.Xác định ràng buộc loại giao diện chung cho giá trị và loại tham chiếu
Tôi có hai giao diện bên dưới.
Tôi muốn có thể hạn chế loại ICommandHandlers TResult để chỉ sử dụng các loại thực hiện ICommandResult, nhưng ICommandResult có các ràng buộc riêng của nó cần được cung cấp. ICommandResult có khả năng trả về một giá trị hoặc kiểu tham chiếu từ thuộc tính Result của nó. Tôi có thiếu một cái gì đó hiển nhiên? Cảm ơn.
public interface ICommandResult<out TResult>
{
TResult Result { get; }
}
public interface ICommandHandler<in TCommand, TResult> where TCommand : ICommand
where TResult : ICommandResult<????>
{
TResult Execute(TCommand command);
}
Tôi không thấy điều này liên quan đến kiểu tham chiếu và kiểu giá trị –
Thuộc tính ICommandResult Result có thể là giá trị hoặc kiểu tham chiếu. – Matt
Vì vậy, có thể loại bất kỳ kiểu generic nào khác trừ khi bị ràng buộc với "where T: class/struct" ? –