C# Класс Mono.CSharp.Switch

Наследование: Statement
Показать файл Открыть проект Примеры использования класса

Открытые свойства

Свойство Тип Описание
Elements SwitchLabel>.IDictionary
Expr Mono.CSharp.Expression
Sections List
SwitchType System.TypeSpec

Открытые методы

Метод Описание
DoEmitStringSwitch ( LocalTemporary value, EmitContext ec ) : void
EmitObjectInteger ( EmitContext ec, object k ) : void
Reset ( ) : void
Resolve ( BlockContext ec ) : bool
ResolveStringSwitchMap ( ResolveContext ec ) : void
Switch ( Mono.CSharp.Expression e, ExplicitBlock block, List sects, Mono.CSharp.Location l ) : System
TableSwitchEmit ( EmitContext ec, Mono.CSharp.Expression val ) : void

This method emits code for a lookup-based switch statement (non-string) Basically it groups the cases into blocks that are at least half full, and then spits out individual lookup opcodes for each block. It emits the longest blocks first, and short blocks are just handled with direct compares.

Защищенные методы

Метод Описание
CloneTo ( CloneContext clonectx, Statement t ) : void
DoEmit ( EmitContext ec ) : void

Приватные методы

Метод Описание
CheckSwitch ( ResolveContext ec ) : bool
FindSection ( SwitchLabel label ) : SwitchSection
SwitchGoverningType ( ResolveContext ec, Mono.CSharp.Expression expr ) : Mono.CSharp.Expression

Описание методов

CloneTo() защищенный Метод

protected CloneTo ( CloneContext clonectx, Statement t ) : void
clonectx CloneContext
t Statement
Результат void

DoEmit() защищенный Метод

protected DoEmit ( EmitContext ec ) : void
ec EmitContext
Результат void

DoEmitStringSwitch() публичный Метод

public DoEmitStringSwitch ( LocalTemporary value, EmitContext ec ) : void
value LocalTemporary
ec EmitContext
Результат void

EmitObjectInteger() публичный Метод

public EmitObjectInteger ( EmitContext ec, object k ) : void
ec EmitContext
k object
Результат void

Reset() публичный статический Метод

public static Reset ( ) : void
Результат void

Resolve() публичный Метод

public Resolve ( BlockContext ec ) : bool
ec BlockContext
Результат bool

ResolveStringSwitchMap() публичный Метод

public ResolveStringSwitchMap ( ResolveContext ec ) : void
ec ResolveContext
Результат void

Switch() публичный Метод

public Switch ( Mono.CSharp.Expression e, ExplicitBlock block, List sects, Mono.CSharp.Location l ) : System
e Mono.CSharp.Expression
block ExplicitBlock
sects List
l Mono.CSharp.Location
Результат System

TableSwitchEmit() публичный Метод

This method emits code for a lookup-based switch statement (non-string) Basically it groups the cases into blocks that are at least half full, and then spits out individual lookup opcodes for each block. It emits the longest blocks first, and short blocks are just handled with direct compares.
public TableSwitchEmit ( EmitContext ec, Mono.CSharp.Expression val ) : void
ec EmitContext
val Mono.CSharp.Expression
Результат void

Описание свойств

Elements публичное свойство

Maps constants whose type type SwitchType to their SwitchLabels.
public IDictionary Elements
Результат SwitchLabel>.IDictionary

Expr публичное свойство

public Expression,Mono.CSharp Expr
Результат Mono.CSharp.Expression

Sections публичное свойство

public List Sections
Результат List

SwitchType публичное свойство

The governing switch type
public TypeSpec,System SwitchType
Результат System.TypeSpec