﻿<?xml version="1.0" encoding="utf-8"?><Type Name="RemoveUnneededFinalizerRule" FullName="Gendarme.Rules.Performance.RemoveUnneededFinalizerRule"><TypeSignature Language="C#" Value="public class RemoveUnneededFinalizerRule : Gendarme.Framework.Rule, Gendarme.Framework.ITypeRule" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit RemoveUnneededFinalizerRule extends Gendarme.Framework.Rule implements class Gendarme.Framework.IRule, class Gendarme.Framework.ITypeRule" /><AssemblyInfo><AssemblyName>Gendarme.Rules.Performance</AssemblyName><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><Base><BaseTypeName>Gendarme.Framework.Rule</BaseTypeName></Base><Interfaces><Interface><InterfaceName>Gendarme.Framework.ITypeRule</InterfaceName></Interface></Interfaces><Attributes><Attribute><AttributeName>Gendarme.Framework.FxCopCompatibility("Microsoft.Performance", "CA1821:RemoveEmptyFinalizers")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Problem("The type has an useless (empty or only nullifying fields) finalizer.")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Solution("Remove the finalizer from this type to reduce the GC workload.")</AttributeName></Attribute></Attributes><Docs><summary>
             This rule looks for types that have an empty finalizer (a.k.a. destructor in C# or 
             <c>Finalize</c> method). Finalizers that simply set fields to null are considered to be
             empty because this does not help the garbage collection. You should remove the empty 
             finalizer to alleviate pressure on the garbage collector and finalizer thread.
             </summary><remarks>Prior to Gendarme 2.2 this rule was named EmptyDestructorRule</remarks><example>
             Bad example (empty):
             <code>
             class Bad {
            	~Bad ()
            	{
            	}
             }
             </code></example><example>
             Bad example (only nulls fields):
             <code>
             class Bad {
            	object o;
            	
            	~Bad ()
            	{
            		o = null;
            	}
             }
             </code></example><example>
             Good example:
             <code>
             class Good {
            	object o;
             }
             </code></example></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public RemoveUnneededFinalizerRule ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="CheckType"><MemberSignature Language="C#" Value="public Gendarme.Framework.RuleResult CheckType (Mono.Cecil.TypeDefinition type);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype Gendarme.Framework.RuleResult CheckType(class Mono.Cecil.TypeDefinition type) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Gendarme.Framework.RuleResult</ReturnType></ReturnValue><Parameters><Parameter Name="type" Type="Mono.Cecil.TypeDefinition" /></Parameters><Docs><param name="type">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member></Members></Type>