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
SectionSlot
public static readonly SlotInfo SectionSlot
Field Value
Sections
public readonly InstructionCollection<SwitchSection> Sections
Field Value
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
ValueSlot
public static readonly SlotInfo ValueSlot
Field Value
Properties
DirectFlags
Gets the flags for this instruction only, without considering the child instructions.
public override InstructionFlags DirectFlags { get; }
Property Value
ResultType
Gets the stack type of the value produced by this instruction.
public override StackType ResultType { get; }
Property Value
Value
public ILInstruction Value { get; set; }
Property Value
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
ComputeFlags()
protected override InstructionFlags ComputeFlags()
Returns
GetChild(int)
protected override ILInstruction GetChild(int index)
Parameters
index
int
Returns
GetChildCount()
protected override int GetChildCount()
Returns
GetChildSlot(int)
protected override SlotInfo GetChildSlot(int index)
Parameters
index
int
Returns
GetDefaultSection()
public SwitchSection GetDefaultSection()
Returns
PerformMatch(ILInstruction?, ref Match)
protected override bool PerformMatch(ILInstruction? other, ref Match match)
Parameters
other
ILInstructionmatch
Match
Returns
SetChild(int, ILInstruction)
protected override void SetChild(int index, ILInstruction value)
Parameters
index
intvalue
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
ITextOutputoptions
ILAstWritingOptions