﻿<?xml version="1.0" encoding="utf-8"?><Type Name="AvoidUnneededCallsOnStringRule" FullName="Gendarme.Rules.Performance.AvoidUnneededCallsOnStringRule"><TypeSignature Language="C#" Value="public class AvoidUnneededCallsOnStringRule : Gendarme.Framework.Rule, Gendarme.Framework.IMethodRule" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit AvoidUnneededCallsOnStringRule extends Gendarme.Framework.Rule implements class Gendarme.Framework.IMethodRule, class Gendarme.Framework.IRule" /><AssemblyInfo><AssemblyName>Gendarme.Rules.Performance</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 needlessly calls some method(s) on a string instance. This may produce some performance penalities.")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Solution("Remove the unneeded call(s) on the string instance.")</AttributeName></Attribute></Attributes><Docs><summary>
             This rule detects when some methods, like <c>Clone()</c>, <c>Substring(0)</c>, 
             <c>ToString()</c> or <c>ToString(IFormatProvider)</c>, are being called on a 
             string instance. Since these calls all return the original string they don't do anything
             useful and should be carefully reviewed to see if they are working as intended and,
             if they are, the method call can be removed.
             </summary><remarks>Prior to Gendarme 2.0 this rule was more limited and named AvoidToStringOnStringsRule</remarks><example>
             Bad example:
             <code>
             public void PrintName (string name)
             {
            	Console.WriteLine ("Name: {0}", name.ToString ());
             }
             </code></example><example>
             Good example:
             <code>
             public void PrintName (string name)
             {
            	Console.WriteLine ("Name: {0}", name);
             }
             </code></example></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public AvoidUnneededCallsOnStringRule ();" /><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></Members></Type>