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

Base class for constants and literals.
Наследование: Mono.CSharp.Expression
Показать файл Открыть проект Примеры использования класса

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

Метод Описание
Clone ( CloneContext clonectx ) : Mono.CSharp.Expression
ContainsEmitWithAwait ( ) : bool
ConvertExplicitly ( bool in_checked_context, System.TypeSpec target_type ) : Constant

Maybe ConvertTo name is better. It tries to convert `this' constant to target_type. It throws OverflowException

ConvertImplicitly ( System.TypeSpec type ) : Constant
CreateConstantFromValue ( System.TypeSpec t, object v, Mono.CSharp.Location loc ) : Constant
CreateExpressionTree ( ResolveContext ec ) : Mono.CSharp.Expression
EmitSideEffect ( EmitContext ec ) : void
Error_ValueCannotBeConverted ( ResolveContext ec, System.TypeSpec target, bool expl ) : void
ExtractConstantFromValue ( System.TypeSpec t, object v, Mono.CSharp.Location loc ) : Constant
GetTypedValue ( ) : object
GetValue ( ) : object

This is used to obtain the actual value of the literal cast into an object.

GetValueAsLiteral ( ) : string
GetValueAsLong ( ) : long
ImplicitConversionRequired ( ResolveContext ec, System.TypeSpec type ) : Constant
IsDefaultInitializer ( System.TypeSpec type ) : bool

Need to pass type as the constant can require a boxing and in such case no optimization is possible

MakeExpression ( BuilderContext ctx ) : System.Linq.Expressions.Expression
Reduce ( ResolveContext ec, System.TypeSpec target_type ) : Constant
Resolve ( ResolveContext rc ) : bool
ToString ( ) : string
TryReduce ( ResolveContext rc, System.TypeSpec targetType ) : Constant

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

Метод Описание
CloneTo ( CloneContext clonectx, Mono.CSharp.Expression target ) : void
Constant ( Mono.CSharp.Location loc ) : System
DoResolve ( ResolveContext rc ) : Mono.CSharp.Expression

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

Метод Описание
ChangeType ( object value, System.TypeSpec targetType, bool &error ) : object
TryReduceConstant ( ResolveContext ec, System.TypeSpec target_type ) : Constant

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

Clone() публичный закрытый Метод

public final Clone ( CloneContext clonectx ) : Mono.CSharp.Expression
clonectx CloneContext
Результат Mono.CSharp.Expression

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

protected CloneTo ( CloneContext clonectx, Mono.CSharp.Expression target ) : void
clonectx CloneContext
target Mono.CSharp.Expression
Результат void

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

protected Constant ( Mono.CSharp.Location loc ) : System
loc Mono.CSharp.Location
Результат System

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

public ContainsEmitWithAwait ( ) : bool
Результат bool

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

Maybe ConvertTo name is better. It tries to convert `this' constant to target_type. It throws OverflowException
public abstract ConvertExplicitly ( bool in_checked_context, System.TypeSpec target_type ) : Constant
in_checked_context bool
target_type System.TypeSpec
Результат Constant

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

public ConvertImplicitly ( System.TypeSpec type ) : Constant
type System.TypeSpec
Результат Constant

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

public static CreateConstantFromValue ( System.TypeSpec t, object v, Mono.CSharp.Location loc ) : Constant
t System.TypeSpec
v object
loc Mono.CSharp.Location
Результат Constant

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

public CreateExpressionTree ( ResolveContext ec ) : Mono.CSharp.Expression
ec ResolveContext
Результат Mono.CSharp.Expression

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

protected DoResolve ( ResolveContext rc ) : Mono.CSharp.Expression
rc ResolveContext
Результат Mono.CSharp.Expression

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

public EmitSideEffect ( EmitContext ec ) : void
ec EmitContext
Результат void

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

public Error_ValueCannotBeConverted ( ResolveContext ec, System.TypeSpec target, bool expl ) : void
ec ResolveContext
target System.TypeSpec
expl bool
Результат void

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

public static ExtractConstantFromValue ( System.TypeSpec t, object v, Mono.CSharp.Location loc ) : Constant
t System.TypeSpec
v object
loc Mono.CSharp.Location
Результат Constant

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

public GetTypedValue ( ) : object
Результат object

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

This is used to obtain the actual value of the literal cast into an object.
public abstract GetValue ( ) : object
Результат object

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

public abstract GetValueAsLiteral ( ) : string
Результат string

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

public abstract GetValueAsLong ( ) : long
Результат long

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

public ImplicitConversionRequired ( ResolveContext ec, System.TypeSpec type ) : Constant
ec ResolveContext
type System.TypeSpec
Результат Constant

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

Need to pass type as the constant can require a boxing and in such case no optimization is possible
public IsDefaultInitializer ( System.TypeSpec type ) : bool
type System.TypeSpec
Результат bool

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

public MakeExpression ( BuilderContext ctx ) : System.Linq.Expressions.Expression
ctx BuilderContext
Результат System.Linq.Expressions.Expression

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

public Reduce ( ResolveContext ec, System.TypeSpec target_type ) : Constant
ec ResolveContext
target_type System.TypeSpec
Результат Constant

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

public Resolve ( ResolveContext rc ) : bool
rc ResolveContext
Результат bool

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

public ToString ( ) : string
Результат string

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

public TryReduce ( ResolveContext rc, System.TypeSpec targetType ) : Constant
rc ResolveContext
targetType System.TypeSpec
Результат Constant