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