Table of Contents

Class TryCatchHandler

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

Catch handler within a try-catch statement.

public sealed class TryCatchHandler : ILInstruction, IStoreInstruction, IInstructionWithVariableOperand
Inheritance
TryCatchHandler
Implements
Inherited Members

Constructors

TryCatchHandler(ILInstruction, ILInstruction, ILVariable)

public TryCatchHandler(ILInstruction filter, ILInstruction body, ILVariable variable)

Parameters

filter ILInstruction
body ILInstruction
variable ILVariable

Fields

BodySlot

public static readonly SlotInfo BodySlot

Field Value

SlotInfo

FilterSlot

public static readonly SlotInfo FilterSlot

Field Value

SlotInfo

Properties

Body

public ILInstruction Body { get; set; }

Property Value

ILInstruction

DirectFlags

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

public override InstructionFlags DirectFlags { get; }

Property Value

InstructionFlags

ExceptionSpecifierILRange

Gets the ILRange of the instructions at the start of the catch-block, that take the exception object and store it in the exception variable slot. Note: This range is empty, if Filter is not empty, i.e., ldloc 1.

public Interval ExceptionSpecifierILRange { get; }

Property Value

Interval

Filter

public ILInstruction Filter { get; set; }

Property Value

ILInstruction

IndexInStoreInstructionList

public int IndexInStoreInstructionList { get; set; }

Property Value

int

ResultType

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

public override StackType ResultType { get; }

Property Value

StackType

Variable

public ILVariable Variable { get; set; }

Property Value

ILVariable

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

AddExceptionSpecifierILRange(Interval)

public void AddExceptionSpecifierILRange(Interval newRange)

Parameters

newRange Interval

Clone()

public override sealed ILInstruction Clone()

Returns

ILInstruction

ComputeFlags()

protected override InstructionFlags ComputeFlags()

Returns

InstructionFlags

Connected()

Called after the ILInstruction was connected to the root node of the ILAst.

protected override void Connected()

Disconnected()

Called after the ILInstruction was disconnected from the root node of the ILAst.

protected override void Disconnected()

GetChild(int)

protected override sealed ILInstruction GetChild(int index)

Parameters

index int

Returns

ILInstruction

GetChildCount()

protected override sealed int GetChildCount()

Returns

int

GetChildSlot(int)

protected override sealed SlotInfo GetChildSlot(int index)

Parameters

index int

Returns

SlotInfo

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 sealed void SetChild(int index, ILInstruction value)

Parameters

index int
value ILInstruction

WriteTo(ITextOutput, ILAstWritingOptions)

Writes the ILAst to the text output.

public override void WriteTo(ITextOutput output, ILAstWritingOptions options)

Parameters

output ITextOutput
options ILAstWritingOptions