considerare questo classe generica:Generici C#: cosa si ottiene facendo una classe wrapper generica?
public class Request<TOperation>
where TOperation : IOperation
{
private TOperation _operation { get; set; }
public string Method { get { return _operation.Method; } }
public Request(TOperation operation)
{
_operation = operation;
}
}
Quali benefici reali fa la versione generica sopra offerta su questa versione non generica di seguito?
public class Request
{
private IOperation _operation { get; set; }
public string Method { get { return _operation.Method; } }
public Request(IOperation operation)
{
_operation = operation;
}
}
L'interfaccia IOperation
è:
public interface IOperation
{
string Method { get; }
}
Gotcha: in altre parole, consente di "chiudere" o specificare il tipo di richiesta in modo più restrittivo dove viene consumato, ma senza la necessità di creare oggetti personalizzati di richiesta per diversi tipi di operazioni. – MalcomTucker
@ MalcomTucker: corretto. –