Destructors in C# are methods used to destroy instances of a class when no longer needed and are called implicitly by the garbage collector. They are unique to the class, have no return type, and are identified by a tilde (~) preceding the class name. Unlike C++, destructors in C# cannot be explicitly called, overloaded, inherited, or defined in structures.