Ho la seguente funzione in C#:Sintassi zucchero per doppio generica funzione di
bool Handle<TCommandHandler, TModel>(TModel model) where TCommandHandler : ICommandHandler<TModel> {
// ...
_container.Resolve<TCommandHandler>();
// ...
}
Dal TModel
risulta da un parametro di funzione che voglio un modo per non specifica il tipo quando si chiama una funzione. Idealmente voglio chiamarlo come:
Handle<MyCommandHandler>(model);
Dal momento che questo è probabilmente impossibile, mi si avvicinò con il seguente:
HandleTemp<TModel> Handle<TModel>(TModel model) {
return new HandleTemp<TModel>(model);
}
public class HandleTemp<TModel> {
private TModel _model;
public HandleTemp(TModel model) { _model = model;}
public bool With<TCommandHandler>() where TCommandHandler : ICommandHandler<TModel> {
}
}
Così ora sto chiamando le cose come:
Handle(model).With<MyCommandHandler>();
Ci sono altre possibilità? Ho fatto qualcosa di completamente sbagliato con la mia soluzione?
Se il metodo fosse statico, allora questo si sarebbe potuto fare meglio in una ' classe'. –
nawfal