﻿<?xml version="1.0" encoding="utf-8"?><Type Name="ExitCodeIsLimitedOnUnixRule" FullName="Gendarme.Rules.Portability.ExitCodeIsLimitedOnUnixRule"><TypeSignature Language="C#" Value="public class ExitCodeIsLimitedOnUnixRule : Gendarme.Framework.Rule, Gendarme.Framework.IAssemblyRule, Gendarme.Framework.IMethodRule" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit ExitCodeIsLimitedOnUnixRule extends Gendarme.Framework.Rule implements class Gendarme.Framework.IAssemblyRule, class Gendarme.Framework.IMethodRule, class Gendarme.Framework.IRule" /><AssemblyInfo><AssemblyName>Gendarme.Rules.Portability</AssemblyName><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><Base><BaseTypeName>Gendarme.Framework.Rule</BaseTypeName></Base><Interfaces><Interface><InterfaceName>Gendarme.Framework.IAssemblyRule</InterfaceName></Interface><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("The rule detected a value outside the 0-255 range or couldn't be sure of the returned value.")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Solution("Review that your return values are all between 0 and 255, this will ensure that they work under both Unix and Windows.")</AttributeName></Attribute></Attributes><Docs><summary>
            This rule applies to all executable (i.e. EXE) assemblies. Something that many Windows
            developers might not be aware of is that on Unix systems, process exit code must be
            between zero and 255, unlike in Windows where it can be any valid integer value.
            This rule warns if the returned value might be out of range either by:
            <list type="bullet"><item><description>returning an unknown value from <c>int Main()</c>;</description></item><item><description>setting the <c>Environment.ExitCode</c> property; or</description></item><item><description>calling <c>Environment.Exit(exitCode)</c> method.</description></item></list>
            An error is reported in case a number which is definitely out of range is returned
            as an exit code.
            </summary><remarks>This rule is available since Gendarme 2.0</remarks><example>
            Bad example:
            <code>
            class MainClass {
            	static int Main ()
            	{
            		Environment.ExitCode = 1000;
            		Environment.Exit (512);
            		return -1;
            	}
            }
            </code></example><example>
            Good example:
            <code>
            class MainClass {
            	static int Main ()
            	{
            		Environment.ExitCode = 42;
            		Environment.Exit (100);
            		return 1;
            	}
            }
            </code></example></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public ExitCodeIsLimitedOnUnixRule ();" /><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="CheckAssembly"><MemberSignature Language="C#" Value="public Gendarme.Framework.RuleResult CheckAssembly (Mono.Cecil.AssemblyDefinition assembly);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype Gendarme.Framework.RuleResult CheckAssembly(class Mono.Cecil.AssemblyDefinition assembly) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Gendarme.Framework.RuleResult</ReturnType></ReturnValue><Parameters><Parameter Name="assembly" Type="Mono.Cecil.AssemblyDefinition" /></Parameters><Docs><param name="assembly">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><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>3.10.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>3.10.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>