[Mono-dev] CS0019 for value type != null
marek.safar at seznam.cz
Tue Apr 8 15:38:42 EDT 2008
> I'm working with code that does this:
> if (valuetype != null)
> // Code assuming `valuetype' is initialized.
This is correct, and `valuetype' will be always initialized
> Which is wrong, since the test is (apparently) always true. Even worse
> would be:
> if (valuetype == null)
> // initialize `valuetype'
This check is wrong because in this scenario valuetype is never equal to
> meaning `valuetype' would never be initialized. It's a little nit-picky,
> since I don't think this results in any real bugs, since the value types
> here are usually simple (e.g., Rectangle, DateTime), but it easily
> could. It almost seems like the buggy gmcs was doing a good service -- I
> don't understand why == and != can be used with null vs. a value type,
> if they always evaluate to false and true.
The rules are quite complicated here, but in this case both null and
valuetype can be lifted.
More information about the Mono-devel-list