Finalizers come with a performance cost due to the overhead of tracking the life cycle of objects. An empty one is consequently costly with no benefit or justification.
== Noncompliant Code Example
----
public class Foo
{
~Foo() // Noncompliant
}