ObsoleteAttribute
I'm afraid I can't remember where I found this, but a blog I found in the very recent past spoke about the ObsoleteAttribute. (I think it was some MSDN content by Kit George - apologies for not being able to credit properly!)
ObsoleteAttribute is used when you want to mark a program element as no longer being used. To me, this is an important feature when you have a published object model that others are coding against and you want to remove functionality to make the object model easier to handle. Here's an example of it being used:
[Obsolete("This method is not in use. Use 'WhateverWhatever' instead.", true)]
public void RefreshNames()
{
// method here...
}
When compiled, this will actually throw an error against any calls to that method. This forces the developers hand to rewrite the offending code such that the dependency on the method is removed.