Я понимаю, что это довольно запутанная и странная вещь, но есть ли способ заставить оператор switch работать на основе свойств объекта. Как передача свойства объекта, а не значения свойства, а самого свойства, и наличие переключателя для оценки?
Основная цель - получить объект с множеством разных свойств, и каждое свойство имеет условия для является ли общий объект истинным или ложным, поэтому я хочу иметь возможность вызывать один метод из нескольких мест и каждое место указывать, какое свойство он хочет проверять на T / F.
ex:
public class Foo{
public int StuffsLimit{get;set;}
public List<int> SomeList {get;set;}
}
...
switch(x){
case Foo.StuffsLimit:
//here, we check whether THIS condition is true
return numberOfStuffs < StuffsLimit;
case Foo.SomeList:
//here, we check if a different condition is true
return SomeList.Contains(5);
}
Я делаю это, чтобы попытаться свести к минимуму лишний / избыточный код. Одно и то же свойство может потребоваться проверить в нескольких местах, поэтому я хочу избежать фактической проверки в этих местах, но я также хочу избегать использования Enum или отдельных методов для всего, чтобы это работало динамически по мере добавления новых свойств. к исходному объекту.
Спасибо