﻿<?xml version="1.0" encoding="utf-8"?><Type Name="DeclareEventHandlersCorrectlyRule" FullName="Gendarme.Rules.Design.DeclareEventHandlersCorrectlyRule"><TypeSignature Language="C#" Value="public class DeclareEventHandlersCorrectlyRule : Gendarme.Framework.Rule, Gendarme.Framework.ITypeRule" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit DeclareEventHandlersCorrectlyRule extends Gendarme.Framework.Rule implements class Gendarme.Framework.IRule, class Gendarme.Framework.ITypeRule" /><AssemblyInfo><AssemblyName>Gendarme.Rules.Design</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.Design", "CA1009:DeclareEventHandlersCorrectly")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Problem("The event has an incorrect signature.")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Solution("You should correct the return type, parameter types, or parameter names.")</AttributeName></Attribute></Attributes><Docs><summary>
             This rule will fire if an event is declared with a signature which does not match
             the .NET guidelines. The return type of the event should be void (because there
             is no good way to handle return values if multiple delegates are attached to the
             event). And the event should take two arguments. The first should be of type
             <c>System.Object</c> and be named 'sender'. The second should be of type 
             <c>System.EventArgs</c> (or a subclass) and named 'e'. This helps tools
             such as visual designers identify the delegates and methods which may be
             attached to events. Note that .NET 2.0 added a generic <c>System.EventHandler</c>
             type which can be used to easily create events with the correct signature.
             </summary><remarks>This rule is available since Gendarme 2.2</remarks><example>
             Bad example:
             <code>
             // the second parameter (which should be System.EventArgs or a derived class) is missing
             delegate void MyDelegate (int sender);
             
             class Bad {
            	public event MyDelegate CustomEvent;
             }
             </code></example><example>
             Good example (delegate):
             <code>
             delegate void MyDelegate (int sender, EventArgs e);
             
             class Good {
            	public event MyDelegate CustomEvent;
             }
             </code></example><example>
             Good example (generics):
             <code>
             class Good {
            	public event EventHandler&lt;EventArgs&gt; CustomEvent;
             }
             </code></example></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public DeclareEventHandlersCorrectlyRule ();" /><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><Member MemberName="TearDown"><MemberSignature Language="C#" Value="public override void TearDown ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance void TearDown() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member></Members></Type>