The != operator uses Equal(left,right) as its comparison. This will cause (byte)0 != (int)0 to be true.The == operator uses DynamicMath.Eq, which I think should also be used in !=.