Je suis définitivement pour.
J'écris actuellement des méthodes d'aide pour différents scénarios où je veux passer des références à différents membres et méthodes de classes. Pour ce faire, je prends, par exemple, un Expression<Func<TIn, TOut>>
comme argument de l'assistant (qui me permet d'atteindre la méthode avec une expression lambda, gardant ainsi tout fortement typé). MAIS - J'ai actuellement besoin de définir une nouvelle méthode d'assistance pour chaque nombre différent d'arguments d'entrée, car j'ai besoin d'une quantité différente d'arguments génériques pour cela.Au lieu 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
je pouvais faire faire avec, au plus, deux méthodes:
HelperMethod<TIn>(Expression<Action<TIn>> arg)
HelperMethod<TOut, TIn1 = DummyType, ...>(Expression<Func<TIn1, ..., TOut> arg)
Dans mon cas, il éviterait beaucoup de duplication de code ...
Dans votre exemple , comment distingueriez-vous entre 'IEnumerable
typeof (IEnumerable
La solution standard ici pour le problème de nom de fichier, et je pense que l'un sanctionné par l'équipe VS (bien que je ne puisse pas trouver un lien pour le moment), est de sauvegarder le fichier pour AGenericType avec un nom comme AGenericType'4.cs. –