У меня есть 2 переменные типа object, которые необходимо сравнить с помощью динамической операции, основанной на перечислении:
public enum OperationType
{
None,
EqualTo,
NotEqualTo,
GreaterThan,
GreaterThanOrEqualTo,
LessThan,
LessThanOrEqualTo
}
Можно предположить, что базовый тип переменных одинаков, может иметь только строковый тип или любой другой тип значения, но неизвестен во время разработки.
В настоящее время у меня есть следующее:
bool match;
switch (Operation)
{
case OperationType.EqualTo:
match = Equals(targetValue, valueToMatch);
break;
case OperationType.NotEqualTo:
match = Equals(targetValue, valueToMatch) == false;
break;
case OperationType.GreaterThan:
//??
break;
case OperationType.GreaterThanOrEqualTo:
//??
break;
case OperationType.LessThan:
//??
break;
case OperationType.LessThanOrEqualTo:
//??
break;
default:
throw new ArgumentOutOfRangeException();
}
Каков наилучший способ определения соответствия во время выполнения (C # 4.0)?