﻿<?xml version="1.0" encoding="utf-8"?><Type Name="ConsiderUsingStopwatchRule" FullName="Gendarme.Rules.Maintainability.ConsiderUsingStopwatchRule"><TypeSignature Language="C#" Value="public class ConsiderUsingStopwatchRule : Gendarme.Framework.Rule, Gendarme.Framework.IMethodRule" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit ConsiderUsingStopwatchRule extends Gendarme.Framework.Rule implements class Gendarme.Framework.IMethodRule, class Gendarme.Framework.IRule" /><AssemblyInfo><AssemblyName>Gendarme.Rules.Maintainability</AssemblyName><AssemblyVersion>4.2.0.0</AssemblyVersion></AssemblyInfo><Base><BaseTypeName>Gendarme.Framework.Rule</BaseTypeName></Base><Interfaces><Interface><InterfaceName>Gendarme.Framework.IMethodRule</InterfaceName></Interface></Interfaces><Attributes><Attribute><AttributeName>Gendarme.Framework.EngineDependency(typeof(Gendarme.Framework.Engines.OpCodeEngine))</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Problem("This method uses the difference between two DateTime.Now calls to retrieve processing time. The developer's intent may not be very clear.")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Solution("Use the System.Diagnostics.Stopwatch type to improve code readability.")</AttributeName></Attribute></Attributes><Docs><summary>
             This rule checks methods for cases where a <c>System.Diagnostics.Stopwatch</c> could be
             used instead of using <c>System.DateTime</c> to compute the time required for an action.
             Stopwatch is preferred because it better expresses the intent of the code and because (on
             some platforms at least) StopWatch is accurate to roughly the microsecond whereas 
             DateTime.Now is only accurate to 16 milliseconds or so. This rule only applies to assemblies
             compiled with the .NET framework version 2.0 (or later).
             </summary><remarks>This rule is available since Gendarme 2.0</remarks><example>
             Bad example:
             <code>
             public TimeSpan DoLongOperation ()
             {
            	DateTime start = DateTime.Now;
            	DownloadNewOpenSuseDvdIso ();
            	return DateTime.Now - start;
             }
             </code></example><example>
             Good example:
             <code>
             public TimeSpan DoLongOperation ()
             {
            	Stopwatch watch = Stopwatch.StartNew ();
            	DownloadNewOpenSuseDvdIso ();
            	return watch.Elapsed;
             }
             </code></example></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public ConsiderUsingStopwatchRule ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>4.2.0.0</AssemblyVersion></AssemblyInfo><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="CheckMethod"><MemberSignature Language="C#" Value="public Gendarme.Framework.RuleResult CheckMethod (Mono.Cecil.MethodDefinition method);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype Gendarme.Framework.RuleResult CheckMethod(class Mono.Cecil.MethodDefinition method) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.2.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Gendarme.Framework.RuleResult</ReturnType></ReturnValue><Parameters><Parameter Name="method" Type="Mono.Cecil.MethodDefinition" /></Parameters><Docs><param name="method">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member><Member MemberName="Initialize"><MemberSignature Language="C#" Value="public override void Initialize (Gendarme.Framework.IRunner runner);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance void Initialize(class Gendarme.Framework.IRunner runner) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.2.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="runner" Type="Gendarme.Framework.IRunner" /></Parameters><Docs><param name="runner">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member></Members></Type>