Ho visto here che Func<(Of <(T1, T2, T3, T4, TResult>)>) Delegate
era l'ultimo Func
nello spazio dei nomi. Cosa fai se hai bisogno di più di 4 parametri?Esistono oggetti Func con più di 4 parametri?
risposta
È possibile creare i propri delegati Func
oppure attendere l'arrivo di .NET 4 (include i delegati integrati Func
e Action
con un massimo di sedici parametri).
Come altri hanno già accennato, se si trova il bisogno di un delegato che prende questi parametri allora forse è il momento di pensare a una sorta di refactoring.
public delegate TResult Func<T1, T2, T3, T4, T5, TResult>
(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
public delegate TResult Func<T1, T2, T3, T4, T5, T6, TResult>
(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, TResult>
(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult>
(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);
// etc
Creare un oggetto parametro, forse?
Il catalogo refactoring ha una gentilezza good description.
,
Dan
Il libro di lettura obbligatorio __CODE complete__ raccomanda fino a 7 parametri. :-) –
Penso che Steve McConnell debba avere un monitor molto grande per leggere le firme dei metodi;) Accetto con tutto il cuore RE: Deve leggere. –
In .Net 4, c'è sovraccarichi fino a 17 parametri (più o meno).
Personalmente, penso che sia pazzesco. Se hai bisogno di più di 4 parametri, è ora di creare una nuova classe che abbia tutti i parametri necessari come proprietà.
Trovo un po 'ridicolo che tu lo consideri "pazzo". Anche una delle operazioni più fondamentali, 'Array.Copy' ha 5 parametri, così come' String.Compare' (** 7 ** parametri) e in generale molte funzioni che dispongono di input item/offset/count e così via. – Mehrdad
- 1. Rails 4 Params forti con più oggetti e chiavi intere
- 2. Funz contrasto con più parametri
- 3. Laravel 4: Come passare più parametri facoltativi
- 4. Come passare più parametri (alcuni oggetti complessi) con Html.ActionLink
- 5. C# Operazione e sovraccarico dei parametri Func
- 6. parametri @ in Junit 4
- 7. Esistono solo 4 stili di linea Matplotlib?
- 8. Ordinamento complesso con più parametri?
- 9. Perché Func non accetta più di 16 argomenti?
- 10. thread con più parametri
- 11. rails 4 reindirizzamento con nuovi parametri
- 12. Rails 4 - parametri forti con scaffold - params.fetch
- 13. Generici Java con più parametri
- 14. onclick = "func()" o .click()?
- 15. Rails 4 parametri forti senza parametri richiesti
- 16. Ricorsione con Func
- 17. AngularJS $ trasmettere con più parametri
- 18. Filtro AngularJS con più parametri
- 19. PHP isset() con più parametri
- 20. EXEC sp_executesql con più parametri
- 21. Gruppo LINQ Con più parametri
- 22. Passaggio di più parametri con $. Ajax url
- 23. Parametri nominati con parametri
- 24. Parametri forti di Rails con array di oggetti
- 25. Eccezione con più parametri nel costruttore
- 26. Rimuovi più oggetti con rm()
- 27. Seleziona più oggetti jQuery con .add()
- 28. query con parametri System.Data.SQLite con più valori?
- 29. Inserimento batch di oggetti con relazioni in Laravel-4
- 30. performSelector con più di 2 oggetti
.Net 4 consentirà un numero illimitato? A proposito, puoi pubblicare un esempio per i delegati di 'Func' di cui stai parlando? – Geo
No, non un numero illimitato. È possibile avere fino a 16 parametri –
Refactoring? Nah, troppo presto. Anche 'String.Compare' accetta 7 parametri. – Mehrdad