You can't create dynamic operators - but you can wrap an operator in a delegate. You can use lambdas to simplify the syntax.
Func opPlus = (a,b) => a + b;
Func opMinus = (a,b) => a - b;
// etc..
// now you can write:
int a = 5, b = 6;
Func op = opPlus;
if( op(a,b) > 9 )
DoSomething();
Although it's not definite - the future direction for C# is to implement the compiler as a service. So, at some point, it may be possible to write code that dynamically evaluates an expression.