Ich habe Probleme, diese generische Integritätsbedingung zu erhalten.Generische Schnittstellentypbeschränkung für Wert- und Referenztypen definieren
Ich habe zwei Schnittstellen unten.
Ich möchte in der Lage sein, den ICommandHandlers TResult-Typ zu beschränken, um nur Typen zu verwenden, die ICommandResult implementieren, aber ICommandResult hat seine eigenen Einschränkungen, die angegeben werden müssen. ICommandResult konnte möglicherweise einen Wert oder Referenztyp aus seiner Result-Eigenschaft zurückgeben. Fehle ich etwas Offensichtliches? Vielen Dank.
public interface ICommandResult<out TResult>
{
TResult Result { get; }
}
public interface ICommandHandler<in TCommand, TResult> where TCommand : ICommand
where TResult : ICommandResult<????>
{
TResult Execute(TCommand command);
}
Ich sehe nicht, was das mit Bezugstypen und Werttypen zu tun hat –
Die ICommandResult Result -Eigenschaft kann entweder ein Wert oder Referenztyp sein. – Matt
So kann jeder andere generische Typ, außer mit "where T: class/struct" ? –