From what I understand, empty methods are compiled, but not actually called: In .NET, will empty method calls be optimized out?
I was also reading http://msdn.microsoft.com/en-us/library/66x5fx1b.aspx:
Empty destructors should not be used. When a class contains a destructor, an entry is created in the Finalize queue. When the destructor is called, the garbage collector is invoked to process the queue. If the destructor is empty, this just causes a needless loss of performance.
Does that mean that with an empty destructor, an entry is still created in the Finalize queue, but the JIT will prevent calling the method?