Definitivamente estoy a favor.
Actualmente estoy escribiendo métodos de ayuda para diferentes escenarios donde quiero pasar referencias a diferentes miembros y métodos de clases. Para lograr esto estoy tomando, por ejemplo, un Expression<Func<TIn, TOut>>
como argumento para el asistente (que me permite llegar al método con una expresión lambda, manteniendo todo fuertemente tipado).
PERO - Actualmente necesito definir un nuevo método de ayuda para cada número diferente de argumentos de entrada, ya que necesito tener una cantidad diferente de argumentos genéricos para él.En lugar de
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
Podría conformarse con, a lo sumo, dos métodos:
HelperMethod<TIn>(Expression<Action<TIn>> arg)
HelperMethod<TOut, TIn1 = DummyType, ...>(Expression<Func<TIn1, ..., TOut> arg)
En mi caso, sería evitar una gran cantidad de duplicación de código ...
En su ejemplo , ¿cómo distinguirías entre 'IEnumerable
typeof (IEnumerable
La solución estándar aquí para el problema del nombre de archivo, y creo que uno sancionado por el equipo VS (aunque no puedo encontrar un enlace en este momento), es guardar el archivo para AGenericType con un nombre como AGenericType'4.cs. –