Table of Contents

Class SwitchInstruction

Namespace
ICSharpCode.Decompiler.IL
Assembly
ICSharpCode.Decompiler.dll

Switch statement

public sealed class SwitchInstruction : ILInstruction
Inheritance
SwitchInstruction
Inherited Members

Constructors

SwitchInstruction(ILInstruction)

public SwitchInstruction(ILInstruction value)

Parameters

value ILInstruction

Fields

IsLifted

If the switch instruction is lifted, the value instruction produces a value of type Nullable{T} for some integral type T. The section with SwitchSection.HasNullLabel is called if the value is null.

public bool IsLifted

Field Value

bool

SectionSlot

public static readonly SlotInfo SectionSlot

Field Value

SlotInfo

Sections

public readonly InstructionCollection<SwitchSection> Sections

Field Value

InstructionCollection<SwitchSection>

Type

Additional type information used to interpret the value instruction. Set by ILInlining to preserve stack information that would otherwise be lost.

public IType? Type

Field Value

IType

ValueSlot

public static readonly SlotInfo ValueSlot

Field Value

SlotInfo

Properties

DirectFlags

Gets the flags for this instruction only, without considering the child instructions.

public override InstructionFlags DirectFlags { get; }

Property Value

InstructionFlags

ResultType

Gets the stack type of the value produced by this instruction.

public override StackType ResultType { get; }

Property Value

StackType

Value

public ILInstruction Value { get; set; }

Property Value

ILInstruction

Methods

AcceptVisitor(ILVisitor)

Calls the Visit*-method on the visitor corresponding to the concrete type of this instruction.

public override void AcceptVisitor(ILVisitor visitor)

Parameters

visitor ILVisitor

AcceptVisitor<T>(ILVisitor<T>)

Calls the Visit*-method on the visitor corresponding to the concrete type of this instruction.

public override T AcceptVisitor<T>(ILVisitor<T> visitor)

Parameters

visitor ILVisitor<T>

Returns

T

Type Parameters

T

AcceptVisitor<C, T>(ILVisitor<C, T>, C)

Calls the Visit*-method on the visitor corresponding to the concrete type of this instruction.

public override T AcceptVisitor<C, T>(ILVisitor<C, T> visitor, C context)

Parameters

visitor ILVisitor<C, T>
context C

Returns

T

Type Parameters

C
T

Clone()

public override ILInstruction Clone()

Returns

ILInstruction

ComputeFlags()

protected override InstructionFlags ComputeFlags()

Returns

InstructionFlags

GetChild(int)

protected override ILInstruction GetChild(int index)

Parameters

index int

Returns

ILInstruction

GetChildCount()

protected override int GetChildCount()

Returns

int

GetChildSlot(int)

protected override SlotInfo GetChildSlot(int index)

Parameters

index int

Returns

SlotInfo

GetDefaultSection()

public SwitchSection GetDefaultSection()

Returns

SwitchSection

PerformMatch(ILInstruction?, ref Match)

protected override bool PerformMatch(ILInstruction? other, ref Match match)

Parameters

other ILInstruction
match Match

Returns

bool

SetChild(int, ILInstruction)

protected override void SetChild(int index, ILInstruction value)

Parameters

index int
value ILInstruction

SetResultType(StackType)

public void SetResultType(StackType resultType)

Parameters

resultType StackType

WriteTo(ITextOutput, ILAstWritingOptions)

Writes the ILAst to the text output.

public override void WriteTo(ITextOutput output, ILAstWritingOptions options)

Parameters

output ITextOutput
options ILAstWritingOptions