FxCop might help (although it didn't spot a test I just fired at it); but yes: you are meant to check. IDisposable
is simply such an important part of the system that you need to get into this habit. Using intellisense to look for .D
is a good start (though not perfect).
However, it doesn't take long to familiarize yourself with types that need disposal; generally anything involving anything external (connection, file, database), for example.
ReSharper does the job too, offering a "put into using construct" option. It doesn't offer it as an error, though...
Of course, if you are unsure - try using
it: the compiler will laugh mockingly at you if you are being paranoid:
using (int i = 5) {}
Error 1 'int': type used in a using statement must be implicitly convertible to 'System.IDisposable'