﻿<?xml version="1.0" encoding="utf-8"?><Type Name="PreferLiteralOverInitOnlyFieldsRule" FullName="Gendarme.Rules.Performance.PreferLiteralOverInitOnlyFieldsRule"><TypeSignature Language="C#" Value="public class PreferLiteralOverInitOnlyFieldsRule : Gendarme.Framework.Rule, Gendarme.Framework.ITypeRule" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit PreferLiteralOverInitOnlyFieldsRule extends Gendarme.Framework.Rule implements class Gendarme.Framework.IRule, class Gendarme.Framework.ITypeRule" /><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.ITypeRule</InterfaceName></Interface></Interfaces><Attributes><Attribute><AttributeName>Gendarme.Framework.EngineDependency(typeof(Gendarme.Framework.Engines.OpCodeEngine))</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.FxCopCompatibility("Microsoft.Performance", "CA1802:UseLiteralsWhereAppropriate")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Problem("Static readonly fields were found where a literal (const) field could be used.")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Solution("Replace the static readonly fields with const(ant) fields.")</AttributeName></Attribute></Attributes><Docs><summary>
             This rule looks for <c>InitOnly</c> fields (<c>readonly</c> in C#) that could be
             turned into <c>Literal</c> (<c>const</c> in C#) because their value is known at
             compile time. <c>Literal</c> fields don't need to be initialized (i.e. they don't
             force the compiler to add a static constructor to the type) resulting in less code and the 
             value (not a reference to the field) will be directly used in the IL (which is OK
             if the field has internal visibility, but is often problematic if the field is visible outside
             the assembly).
             </summary><remarks>This rule is available since Gendarme 2.2</remarks><example>
             Bad example:
             <code>
             public class ClassWithReadOnly {
            	static readonly int One = 1;
             }
             </code></example><example>
             Good example:
             <code>
             public class ClassWithConst
             {
            	const int One = 1;
             }
             </code></example></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public PreferLiteralOverInitOnlyFieldsRule ();" /><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="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>4.2.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>