The behavior is documented in this page about Nullable Types. It doesn't give a real explanation for why, but my interpretation is the following. > and < have no meaning when with regards to null. null is the absence of a value and thus is only equal to another variable that also has no value. Since there is no meaning for > and <, that is carried over to >= and <=.