Sono decisamente per questo.
Attualmente sto scrivendo metodi di supporto per diversi scenari in cui voglio passare riferimenti a membri diversi e metodi di classi. Per fare ciò sto prendendo, per esempio, uno Expression<Func<TIn, TOut>>
come argomento per l'helper (che mi consente di raggiungere il metodo con un'espressione lambda, mantenendo così tutto fortemente digitato).
BUT - Attualmente ho bisogno di definire un nuovo metodo di supporto per ogni diverso numero di argomenti di input, dal momento che ho bisogno di avere una quantità diversa di argomenti generici ad esso.Invece di
HelperMethod<TIn>(Expression<Action<TIn>> arg) // Yes, C# can distinguish
HelperMethod<TOut>(Expression<Func<TOut>> arg) // these two from eachother
HelperMethod<TIn, TOut>(Expression<Func<TIn, TOut>> arg)
HelperMethod<TIn1, TIn2, TOut>(Expression<Func<TIn1, TIn2, TOut>> arg)
// etc
ho potuto fare che fare con, al massimo, due metodi:
HelperMethod<TIn>(Expression<Action<TIn>> arg)
HelperMethod<TOut, TIn1 = DummyType, ...>(Expression<Func<TIn1, ..., TOut> arg)
Nel mio caso, sarebbe evitare un sacco di duplicazione del codice ...
fonte
2010-04-09 23:38:06
Nel tuo esempio come distinguere tra 'IEnumerable
typeof (IEnumerable
La soluzione standard qui intorno al problema del nome del file, e penso una sanzionata dal team VS (anche se al momento non riesco a trovare un collegamento), è quello di salvare il file per AGenericType con un nome come AGenericType'4.cs. –