У меня есть следующий общий класс, используя C# 6:Общий метод с Ti и Ti + 1
public class IncludeMapper<T1> {
private readonly Dictionary<String, List<LambdaExpression>> _properties = new Dictionary<String, List<LambdaExpression>>();
public IncludeMapper<T1> Add<T2, T3>(String property, Expression<Func<T1, T2>> path1, Expression<Func<T2, T3>> path2) {
if (!_properties.ContainsKey(property))
_properties.Add(property, new List<LambdaExpression> { path1, path2 });
return this;
}
public IncludeMapper<T1> Add<T2, T3, T4>(String property, Expression<Func<T1, T2>> path1, Expression<Func<T2, T3>> path2, Expression<Func<T3, T4>> path3) {
if (!_properties.ContainsKey(property))
_properties.Add(property, new List<LambdaExpression> { path1, path2, path3 });
return this;
}
}
Метод Add имеет несколько выражений (пути), которые принимают одну Ti и Ti + 1.
Есть ли способ упростить мой код? Мне понадобится как минимум еще 4 метода до тех пор, пока не будет достигнут путь 7.
Короткий ответ: Нет. Расширенный ответ: [здесь] (http://stackoverflow.com/questions/15417174/using-the-params-keyword-for-generic-parameters-in-c-sharp) – lokusking