This is a simple task, yet one which is frequently carried out incorrectly. This kind of comparison is often required when dealing with classes that look like the following.
Now the knee-jerk reaction to compare _variable
and value
in this case is to do this.
However, this doesn’t compile. This makes sense, because we cannot guarantee that the type T
overloads the equality operator (reference types do by default, but value types do not). In light of this problem, many people will resort to the following.
However this poses a different problem. If _variable
is ever null, your program will throw a null reference exception. But there is a way around this. Simply use the static implementation of Equals()
on System.Object
as follows.
Problem solved!