C# 클래스 Mono.CSharp.Switch

상속: Statement
파일 보기 프로젝트 열기: kumpera/mono 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
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