'Exception: Cannot implicitly convert type 'Microsoft.SolverFoundation.Services.Term' to 'bool'
I'm getting an exception
"Cannot implicitly convert type 'Microsoft.SolverFoundation.Services.Term' to 'bool'"
in the following code:
double T1;
Decision T4;
var XX3 = T1 > (T4 - 0.001) ? T4 - 0.001 : T1;
How it is possible to fix this problem?
Solution 1:[1]
You use overloads of subtraction and greater than that have a return type Microsoft.SolverFoundation.Services.Term (see links). Then you use that expression x as the first part (of three) in the conditional operator x ? a : b. But a bool is required there.
I suggest you use Model.If instead, it appears to be Solver Foundation's "conditional operator". To be technical, the C# language does not allow overloading the ?: ternary operator the way many binary operators like - and > can be overloaded.
So change:
var XX3 = T1 > (T4 - 0.001) /* illegal! */ ? T4 - 0.001 : T1;
into:
var XX3 = Model.If(T1 > T4 - 0.001, T4 - 0.001, T1);
Disclaimer: I am not a Solver Foundation user.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
