Search code examples
c#ms-solver-foundation

cannot implicitly convert type 'Microsoft.SolverFoundation.Services.Term' to 'bool'


I got an exception "cannot implicitly convert type 'Microsoft.SolverFoundation.Services.Term' to 'bool'" at the code below, how should I solve it?

Term a=null;
            if(a==null)//<--this line exception
            {

            }

Below is the snap shot

enter image description here


Solution

  • The problem is that the Term class overrides the equality operator in a way that it doesn't return bool but another Term instead: http://msdn.microsoft.com/en-us/library/ff525374%28v=vs.93%29.aspx

    I am not sure why they would do something like this, because it goes against any advice on overriding operators...

    To fix your problem, use this code instead:

    if(ReferenceEquals(a, null))