У меня есть класс MyDummyClass
, которому я хотел бы передать некоторые свойства в форме лямбда-выражения для последующей оценки. Итак, что я могу сделать что-то вроде
public class MyDummyClass<T>
{
public MyDummyClass(Expression<Func<T, object>> property)
{
...
}
...
}
.. а затем использовать этот класс, например new MyDummyClass
, верно?
Но тогда я бы хотел передать не только одно свойство, но и список свойств. Поэтому я бы написал свой класс как
public class MyDummyClass<T>
{
public MyDummyClass(IEnumerable<Expression<Func<T, object>>> properties)
{
...
}
...
}
и хотел бы использовать его как new MyDummyClass
, но, к сожалению, не работает ! Вместо этого я должен написать
new MyDummyClass<Person>
(new Expression<Func<Person, object>>[] { x=>x.Name, x=>x.Surname});
. Но это немного неудобно писать, не правда ли? Конечно, использование params будет работать, но это всего лишь образец из более сложного фрагмента кода, где использование params не является вариантом . Есть ли у лучший вариант , чтобы выйти из этого ??