C# Класс Jurassic.Compiler.DynamicILGenerator

Represents a generator of CIL bytes.
Наследование: ILGenerator
Показать файл Открыть проект Примеры использования класса

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

Метод Описание
Add ( ) : void

Pops two values from the stack, adds them together, then pushes the result to the stack.

BeginCatchBlock ( Type exceptionType ) : void

Begins a catch block. BeginExceptionBlock() must have already been called.

BeginExceptionBlock ( ) : void

Begins a try-catch-finally block.

BeginFaultBlock ( ) : void

Begins a fault block. BeginTryCatchFinallyBlock() must have already been called.

BeginFilterBlock ( ) : void

Begins a filter block. BeginTryCatchFinallyBlock() must have already been called.

BeginFinallyBlock ( ) : void

Begins a finally block. BeginTryCatchFinallyBlock() must have already been called.

BitwiseAnd ( ) : void

Pops two values from the stack, ANDs them together, then pushes the result to the stack.

BitwiseNot ( ) : void

Pops a value from the stack, inverts it, then pushes the result to the stack.

BitwiseOr ( ) : void

Pops two values from the stack, ORs them together, then pushes the result to the stack.

BitwiseXor ( ) : void

Pops two values from the stack, XORs them together, then pushes the result to the stack.

Box ( Type type ) : void

Pops a value from the stack, converts it to an object reference, then pushes it back onto the stack.

Branch ( ILLabel label ) : void

Unconditionally branches to the given label.

BranchIfEqual ( ILLabel label ) : void

Branches to the given label if the two values on the top of the stack are equal.

BranchIfGreaterThan ( ILLabel label ) : void

Branches to the given label if the first value on the stack is greater than the second value on the stack.

BranchIfGreaterThanOrEqual ( ILLabel label ) : void

Branches to the given label if the first value on the stack is greater than or equal to the second value on the stack.

BranchIfGreaterThanOrEqualUnsigned ( ILLabel label ) : void

Branches to the given label if the first value on the stack is greater than or equal to the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.

BranchIfGreaterThanUnsigned ( ILLabel label ) : void

Branches to the given label if the first value on the stack is greater than the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.

BranchIfLessThan ( ILLabel label ) : void

Branches to the given label if the first value on the stack is less than the second value on the stack.

BranchIfLessThanOrEqual ( ILLabel label ) : void

Branches to the given label if the first value on the stack is less than or equal to the second value on the stack.

BranchIfLessThanOrEqualUnsigned ( ILLabel label ) : void

Branches to the given label if the first value on the stack is less than or equal to the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.

BranchIfLessThanUnsigned ( ILLabel label ) : void

Branches to the given label if the first value on the stack is less than the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.

BranchIfNotEqual ( ILLabel label ) : void

Branches to the given label if the two values on the top of the stack are not equal.

BranchIfNotZero ( ILLabel label ) : void

Branches to the given label if the value on the top of the stack is non-zero, true or non-null.

BranchIfZero ( ILLabel label ) : void

Branches to the given label if the value on the top of the stack is zero.

Breakpoint ( ) : void

Triggers a breakpoint in an attached debugger.

CallStatic ( System method ) : void

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one). This operation can be used to call instance methods, but virtual overrides will not be called and a null check will not be performed at the callsite.

CallVirtual ( System method ) : void

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one). This operation cannot be used to call static methods. Virtual overrides are obeyed and a null check is performed.

CastClass ( Type type ) : void

Pops an object off the stack, checks that the object inherits from or implements the given type, and pushes the object onto the stack if the check was successful or throws an InvalidCastException if the check failed.

CompareEqual ( ) : void

Pops two values from the stack, compares, then pushes 1 if the first argument is equal to the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.

CompareGreaterThan ( ) : void

Pops two values from the stack, compares, then pushes 1 if the first argument is greater than the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.

CompareGreaterThanUnsigned ( ) : void

Pops two values from the stack, compares, then pushes 1 if the first argument is greater than the second, or 0 otherwise. Produces 1 if one or both of the arguments are NaN. Integers are considered to be unsigned.

CompareLessThan ( ) : void

Pops two values from the stack, compares, then pushes 1 if the first argument is less than the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.

CompareLessThanUnsigned ( ) : void

Pops two values from the stack, compares, then pushes 1 if the first argument is less than the second, or 0 otherwise. Produces 1 if one or both of the arguments are NaN. Integers are considered to be unsigned.

Complete ( ) : void

Emits a return statement and finalizes the generated code. Do not emit any more instructions after calling this method.

ConvertToDouble ( ) : void

Pops a value from the stack, converts it to a double, then pushes it back onto the stack.

ConvertToInt64 ( ) : void

Pops a value from the stack, converts it to a signed 64-bit integer, then pushes it back onto the stack.

ConvertToInteger ( ) : void

Pops a value from the stack, converts it to a signed integer, then pushes it back onto the stack.

ConvertToUnsignedInt64 ( ) : void

Pops a value from the stack, converts it to an unsigned 64-bit integer, then pushes it back onto the stack.

ConvertToUnsignedInteger ( ) : void

Pops a value from the stack, converts it to an unsigned integer, then pushes it back onto the stack.

ConvertUnsignedToDouble ( ) : void

Pops an unsigned integer from the stack, converts it to a double, then pushes it back onto the stack.

CreateLabel ( ) : ILLabel

Creates a label without setting its position.

DeclareVariable ( Type type, string name = null ) : ILLocalVariable

Declares a new local variable.

DefineLabelPosition ( ILLabel label ) : void

Defines the position of the given label.

Divide ( ) : void

Pops two values from the stack, divides the first by the second, then pushes the result to the stack.

Duplicate ( ) : void

Duplicates the value on the top of the stack.

DynamicILGenerator ( System dynamicMethod ) : System

Creates a new DynamicILGenerator instance.

EndExceptionBlock ( ) : void

Ends a try-catch-finally block.

EndFilter ( ) : void

This instruction can be used from within a filter block to indicate whether the exception will be handled. It pops an integer from the stack which should be 0 to continue searching for an exception handler or 1 to use the handler associated with the filter. EndFilter() must be called at the end of a filter block.

EndFinally ( ) : void

This instruction can be used from within a finally block to resume the exception handling process. It is the only valid way of leaving a finally block.

InitObject ( Type type ) : void

Pops a managed or native pointer off the stack and initializes the referenced type with zeros.

IsInstance ( Type type ) : void

Pops an object off the stack, checks that the object inherits from or implements the given type, and pushes either the object (if the check was successful) or null (if the check failed) onto the stack.

Leave ( ILLabel label ) : void

Unconditionally branches to the given label. Unlike the regular branch instruction, this instruction can exit out of try, filter and catch blocks.

LoadAddressOfVariable ( ILLocalVariable variable ) : void

Pushes the address of the given variable onto the stack.

LoadArgument ( int argumentIndex ) : void

Pushes the value of the method argument with the given index onto the stack.

LoadArrayElement ( Type type ) : void

Pops the array and index off the stack and pushes the element value onto the stack.

LoadArrayLength ( ) : void

Pops an array off the stack and pushes the length of the array onto the stack.

LoadDouble ( double value ) : void

Pushes a constant value onto the stack.

LoadField ( System field ) : void

Pushes the value of the given field onto the stack.

LoadInt32 ( int value ) : void

Pushes a constant value onto the stack.

LoadInt64 ( long value ) : void

Pushes a 64-bit constant value onto the stack.

LoadNull ( ) : void

Pushes null onto the stack.

LoadStaticMethodPointer ( System method ) : void

Pushes a pointer to the native code implementing the given method onto the evaluation stack. The virtual qualifier will be ignored, if present.

LoadString ( string value ) : void

Pushes a constant value onto the stack.

LoadToken ( System method ) : void

Pushes a RuntimeMethodHandle corresponding to the given method onto the evaluation stack.

LoadToken ( Type type ) : void

Pushes a RuntimeTypeHandle corresponding to the given type onto the evaluation stack.

LoadVariable ( ILLocalVariable variable ) : void

Pushes the value of the given variable onto the stack.

LoadVirtualMethodPointer ( System method ) : void

Pushes a pointer to the native code implementing the given method onto the evaluation stack. This method cannot be used to retrieve a pointer to a static method.

MarkSequencePoint ( System document, int startLine, int startColumn, int endLine, int endColumn ) : void

Marks a sequence point in the Microsoft intermediate language (MSIL) stream.

Multiply ( ) : void

Pops two values from the stack, multiplies them together, then pushes the result to the stack.

Negate ( ) : void

Pops a value from the stack, negates it, then pushes it back onto the stack.

NewArray ( Type type ) : void

Pops the size of the array off the stack and pushes a new array of the given type onto the stack.

NewObject ( System constructor ) : void

Pops the constructor arguments off the stack and creates a new instance of the object.

NoOperation ( ) : void

Does nothing.

Pop ( ) : void

Pops the value from the top of the stack.

Remainder ( ) : void

Pops two values from the stack, divides the first by the second, then pushes the remainder to the stack.

Return ( ) : void

Returns from the current method. A value is popped from the stack and used as the return value.

ShiftLeft ( ) : void

Pops two values from the stack, shifts the first to the left, then pushes the result to the stack.

ShiftRight ( ) : void

Pops two values from the stack, shifts the first to the right, then pushes the result to the stack. The sign bit is preserved.

ShiftRightUnsigned ( ) : void

Pops two values from the stack, shifts the first to the right, then pushes the result to the stack. The sign bit is not preserved.

StoreArgument ( int argumentIndex ) : void

Pops a value from the stack and stores it in the method argument with the given index.

StoreArrayElement ( Type type ) : void

Pops the array, index and value off the stack and stores the value in the array.

StoreField ( System field ) : void

Pops a value off the stack and stores it in the given field.

StoreVariable ( ILLocalVariable variable ) : void

Pops the value from the top of the stack and stores it in the given local variable.

Subtract ( ) : void

Pops two values from the stack, subtracts the second from the first, then pushes the result to the stack.

Switch ( ILLabel labels ) : void

Creates a jump table. A value is popped from the stack - this value indicates the index of the label in the labels array to jump to.

Throw ( ) : void

Pops an exception object off the stack and throws the exception.

Unbox ( Type type ) : void

Pops an object reference (representing a boxed value) from the stack, extracts the address, then pushes that address onto the stack.

UnboxAny ( Type type ) : void

Pops an object reference (representing a boxed value) from the stack, extracts the value, then pushes the value onto the stack.

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

Метод Описание
BeginExceptionBlock ( ExceptionClauseType type ) : void

Begins a finally, filter or fault block.

BranchCore ( ILLabel label, byte opCode ) : void

Unconditionally branches to the given label.

BranchCore ( ILLabel label, byte opCode, ComparisonOperator @operator ) : void

Conditionally branches to the given label, popping two operands from the stack.

BranchCore ( ILLabel label, byte opCode, VESType operandType ) : void

Conditionally branches to the given label, popping one operand from the stack.

CheckArithmeticOperands ( ArithmeticOperator @operator ) : void
CheckComparisonOperands ( ComparisonOperator @operator, bool branchOperation ) : void
ClearEvaluationStack ( ) : void

Removes all values from the evaluation stack.

Emit1ByteOpCode ( byte opCode, int popCount, int pushCount ) : void

Emits a one byte opcode.

Emit1ByteOpCodeInt16 ( byte opCode, int popCount, int pushCount, int emitInt16 ) : void

Emits a one byte opcode plus a 2-byte operand.

Emit1ByteOpCodeInt32 ( byte opCode, int popCount, int pushCount, int emitInt32 ) : void

Emits a one byte opcode plus a 4-byte operand.

Emit1ByteOpCodeInt64 ( byte opCode, int popCount, int pushCount, long emitInt64 ) : void

Emits a one byte opcode plus a 8-byte operand.

Emit1ByteOpCodeInt8 ( byte opCode, int popCount, int pushCount, int emitInt8 ) : void

Emits a one byte opcode plus a 1-byte operand.

Emit2ByteOpCode ( byte opCode1, byte opCode2, int popCount, int pushCount ) : void

Emits a two byte opcode.

Emit2ByteOpCodeInt16 ( byte opCode1, byte opCode2, int popCount, int pushCount, int emitInt16 ) : void

Emits a two byte opcode plus a 2-byte operand.

Emit2ByteOpCodeInt32 ( byte opCode1, byte opCode2, int popCount, int pushCount, int emitInt32 ) : void

Emits a two byte opcode plus a 4-byte operand.

EmitCall ( byte opCode, System method ) : void

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one).

EmitInt16 ( int value ) : void

Emits a 16-bit integer and increments the offset member variable.

EmitInt32 ( int value ) : void

Emits a 32-bit integer and increments the offset member variable.

EmitInt64 ( long value ) : void

Emits a 64-bit integer and increments the offset member variable.

EmitLabel ( ILLabel label, int startOfNextInstruction ) : void

Emits a single label.

EndCurrentClause ( ExceptionRegion exceptionRegion ) : void

Closes the currently open exception clause.

EnlargeArray ( int instructionSize ) : void

Enlarges the internal IL buffer.

FixLabels ( ) : void

Patch any undefined labels.

GetToken ( System method ) : int

Gets a metadata token for the given method.

GetToken ( Type type ) : int

Gets a metadata token for the given type.

GetToken ( string str ) : int

Gets a metadata token for the given string.

PopStackOperands ( ) : void
PushStackOperand ( VESType type ) : void
ReplaceEvaluationStack ( ) : void

Removes all values from the evaluation stack and adds the given operand types back.

ToVESType ( Type type ) : VESType

Converts a .NET type into an IL operand type.

UnconditionalBranch ( ) : void

Puts the stack into an indeterminate state.

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

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

Pops two values from the stack, adds them together, then pushes the result to the stack.
public Add ( ) : void
Результат void

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

Begins a catch block. BeginExceptionBlock() must have already been called.
public BeginCatchBlock ( Type exceptionType ) : void
exceptionType System.Type The type of exception to handle.
Результат void

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

Begins a try-catch-finally block.
public BeginExceptionBlock ( ) : void
Результат void

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

Begins a fault block. BeginTryCatchFinallyBlock() must have already been called.
public BeginFaultBlock ( ) : void
Результат void

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

Begins a filter block. BeginTryCatchFinallyBlock() must have already been called.
public BeginFilterBlock ( ) : void
Результат void

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

Begins a finally block. BeginTryCatchFinallyBlock() must have already been called.
public BeginFinallyBlock ( ) : void
Результат void

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

Pops two values from the stack, ANDs them together, then pushes the result to the stack.
public BitwiseAnd ( ) : void
Результат void

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

Pops a value from the stack, inverts it, then pushes the result to the stack.
public BitwiseNot ( ) : void
Результат void

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

Pops two values from the stack, ORs them together, then pushes the result to the stack.
public BitwiseOr ( ) : void
Результат void

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

Pops two values from the stack, XORs them together, then pushes the result to the stack.
public BitwiseXor ( ) : void
Результат void

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

Pops a value from the stack, converts it to an object reference, then pushes it back onto the stack.
public Box ( Type type ) : void
type System.Type
Результат void

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

Unconditionally branches to the given label.
public Branch ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the two values on the top of the stack are equal.
public BranchIfEqual ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the first value on the stack is greater than the second value on the stack.
public BranchIfGreaterThan ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the first value on the stack is greater than or equal to the second value on the stack.
public BranchIfGreaterThanOrEqual ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the first value on the stack is greater than or equal to the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.
public BranchIfGreaterThanOrEqualUnsigned ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the first value on the stack is greater than the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.
public BranchIfGreaterThanUnsigned ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the first value on the stack is less than the second value on the stack.
public BranchIfLessThan ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the first value on the stack is less than or equal to the second value on the stack.
public BranchIfLessThanOrEqual ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the first value on the stack is less than or equal to the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.
public BranchIfLessThanOrEqualUnsigned ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the first value on the stack is less than the second value on the stack. If the operands are integers then they are treated as if they are unsigned. If the operands are floating point numbers then a NaN value will trigger a branch.
public BranchIfLessThanUnsigned ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the two values on the top of the stack are not equal.
public BranchIfNotEqual ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the value on the top of the stack is non-zero, true or non-null.
public BranchIfNotZero ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Branches to the given label if the value on the top of the stack is zero.
public BranchIfZero ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Triggers a breakpoint in an attached debugger.
public Breakpoint ( ) : void
Результат void

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

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one). This operation can be used to call instance methods, but virtual overrides will not be called and a null check will not be performed at the callsite.
public CallStatic ( System method ) : void
method System The method to call.
Результат void

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

Pops the method arguments off the stack, calls the given method, then pushes the result to the stack (if there was one). This operation cannot be used to call static methods. Virtual overrides are obeyed and a null check is performed.
The method is static.
public CallVirtual ( System method ) : void
method System The method to call.
Результат void

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

Pops an object off the stack, checks that the object inherits from or implements the given type, and pushes the object onto the stack if the check was successful or throws an InvalidCastException if the check failed.
public CastClass ( Type type ) : void
type System.Type The type of the class the object inherits from or the interface the /// object implements.
Результат void

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

Pops two values from the stack, compares, then pushes 1 if the first argument is equal to the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.
public CompareEqual ( ) : void
Результат void

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

Pops two values from the stack, compares, then pushes 1 if the first argument is greater than the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.
public CompareGreaterThan ( ) : void
Результат void

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

Pops two values from the stack, compares, then pushes 1 if the first argument is greater than the second, or 0 otherwise. Produces 1 if one or both of the arguments are NaN. Integers are considered to be unsigned.
public CompareGreaterThanUnsigned ( ) : void
Результат void

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

Pops two values from the stack, compares, then pushes 1 if the first argument is less than the second, or 0 otherwise. Produces 0 if one or both of the arguments are NaN.
public CompareLessThan ( ) : void
Результат void

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

Pops two values from the stack, compares, then pushes 1 if the first argument is less than the second, or 0 otherwise. Produces 1 if one or both of the arguments are NaN. Integers are considered to be unsigned.
public CompareLessThanUnsigned ( ) : void
Результат void

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

Emits a return statement and finalizes the generated code. Do not emit any more instructions after calling this method.
public Complete ( ) : void
Результат void

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

Pops a value from the stack, converts it to a double, then pushes it back onto the stack.
public ConvertToDouble ( ) : void
Результат void

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

Pops a value from the stack, converts it to a signed 64-bit integer, then pushes it back onto the stack.
public ConvertToInt64 ( ) : void
Результат void

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

Pops a value from the stack, converts it to a signed integer, then pushes it back onto the stack.
public ConvertToInteger ( ) : void
Результат void

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

Pops a value from the stack, converts it to an unsigned 64-bit integer, then pushes it back onto the stack.
public ConvertToUnsignedInt64 ( ) : void
Результат void

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

Pops a value from the stack, converts it to an unsigned integer, then pushes it back onto the stack.
public ConvertToUnsignedInteger ( ) : void
Результат void

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

Pops an unsigned integer from the stack, converts it to a double, then pushes it back onto the stack.
public ConvertUnsignedToDouble ( ) : void
Результат void

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

Creates a label without setting its position.
public CreateLabel ( ) : ILLabel
Результат ILLabel

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

Declares a new local variable.
public DeclareVariable ( Type type, string name = null ) : ILLocalVariable
type System.Type The type of the local variable.
name string The name of the local variable. Can be null.
Результат ILLocalVariable

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

Defines the position of the given label.
public DefineLabelPosition ( ILLabel label ) : void
label ILLabel The label to define.
Результат void

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

Pops two values from the stack, divides the first by the second, then pushes the result to the stack.
public Divide ( ) : void
Результат void

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

Duplicates the value on the top of the stack.
public Duplicate ( ) : void
Результат void

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

Creates a new DynamicILGenerator instance.
public DynamicILGenerator ( System dynamicMethod ) : System
dynamicMethod System The dynamic method to generate code for.
Результат System

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

Ends a try-catch-finally block.
public EndExceptionBlock ( ) : void
Результат void

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

This instruction can be used from within a filter block to indicate whether the exception will be handled. It pops an integer from the stack which should be 0 to continue searching for an exception handler or 1 to use the handler associated with the filter. EndFilter() must be called at the end of a filter block.
public EndFilter ( ) : void
Результат void

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

This instruction can be used from within a finally block to resume the exception handling process. It is the only valid way of leaving a finally block.
public EndFinally ( ) : void
Результат void

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

Pops a managed or native pointer off the stack and initializes the referenced type with zeros.
public InitObject ( Type type ) : void
type System.Type The type the pointer on the top of the stack is pointing to.
Результат void

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

Pops an object off the stack, checks that the object inherits from or implements the given type, and pushes either the object (if the check was successful) or null (if the check failed) onto the stack.
public IsInstance ( Type type ) : void
type System.Type The type of the class the object inherits from or the interface the /// object implements.
Результат void

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

Unconditionally branches to the given label. Unlike the regular branch instruction, this instruction can exit out of try, filter and catch blocks.
public Leave ( ILLabel label ) : void
label ILLabel The label to branch to.
Результат void

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

Pushes the address of the given variable onto the stack.
public LoadAddressOfVariable ( ILLocalVariable variable ) : void
variable ILLocalVariable The variable whose address will be pushed.
Результат void

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

Pushes the value of the method argument with the given index onto the stack.
public LoadArgument ( int argumentIndex ) : void
argumentIndex int The index of the argument to push onto the stack.
Результат void

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

Pops the array and index off the stack and pushes the element value onto the stack.
public LoadArrayElement ( Type type ) : void
type System.Type The element type.
Результат void

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

Pops an array off the stack and pushes the length of the array onto the stack.
public LoadArrayLength ( ) : void
Результат void

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

Pushes a constant value onto the stack.
public LoadDouble ( double value ) : void
value double The number to push onto the stack.
Результат void

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

Pushes the value of the given field onto the stack.
public LoadField ( System field ) : void
field System The field whose value will be pushed.
Результат void

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

Pushes a constant value onto the stack.
public LoadInt32 ( int value ) : void
value int The integer to push onto the stack.
Результат void

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

Pushes a 64-bit constant value onto the stack.
public LoadInt64 ( long value ) : void
value long The 64-bit integer to push onto the stack.
Результат void

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

Pushes null onto the stack.
public LoadNull ( ) : void
Результат void

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

Pushes a pointer to the native code implementing the given method onto the evaluation stack. The virtual qualifier will be ignored, if present.
public LoadStaticMethodPointer ( System method ) : void
method System The method to retrieve a pointer for.
Результат void

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

Pushes a constant value onto the stack.
public LoadString ( string value ) : void
value string The string to push onto the stack.
Результат void

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

Pushes a RuntimeMethodHandle corresponding to the given method onto the evaluation stack.
public LoadToken ( System method ) : void
method System The method to convert to a RuntimeMethodHandle.
Результат void

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

Pushes a RuntimeTypeHandle corresponding to the given type onto the evaluation stack.
public LoadToken ( Type type ) : void
type System.Type The type to convert to a RuntimeTypeHandle.
Результат void

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

Pushes the value of the given variable onto the stack.
public LoadVariable ( ILLocalVariable variable ) : void
variable ILLocalVariable The variable whose value will be pushed.
Результат void

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

Pushes a pointer to the native code implementing the given method onto the evaluation stack. This method cannot be used to retrieve a pointer to a static method.
The method is static.
public LoadVirtualMethodPointer ( System method ) : void
method System The method to retrieve a pointer for.
Результат void

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

Marks a sequence point in the Microsoft intermediate language (MSIL) stream.
public MarkSequencePoint ( System document, int startLine, int startColumn, int endLine, int endColumn ) : void
document System The document for which the sequence point is being defined.
startLine int The line where the sequence point begins.
startColumn int The column in the line where the sequence point begins.
endLine int The line where the sequence point ends.
endColumn int The column in the line where the sequence point ends.
Результат void

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

Pops two values from the stack, multiplies them together, then pushes the result to the stack.
public Multiply ( ) : void
Результат void

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

Pops a value from the stack, negates it, then pushes it back onto the stack.
public Negate ( ) : void
Результат void

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

Pops the size of the array off the stack and pushes a new array of the given type onto the stack.
public NewArray ( Type type ) : void
type System.Type The element type.
Результат void

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

Pops the constructor arguments off the stack and creates a new instance of the object.
public NewObject ( System constructor ) : void
constructor System The constructor that is used to initialize the object.
Результат void

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

Does nothing.
public NoOperation ( ) : void
Результат void

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

Pops the value from the top of the stack.
public Pop ( ) : void
Результат void

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

Pops two values from the stack, divides the first by the second, then pushes the remainder to the stack.
public Remainder ( ) : void
Результат void

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

Returns from the current method. A value is popped from the stack and used as the return value.
public Return ( ) : void
Результат void

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

Pops two values from the stack, shifts the first to the left, then pushes the result to the stack.
public ShiftLeft ( ) : void
Результат void

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

Pops two values from the stack, shifts the first to the right, then pushes the result to the stack. The sign bit is preserved.
public ShiftRight ( ) : void
Результат void

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

Pops two values from the stack, shifts the first to the right, then pushes the result to the stack. The sign bit is not preserved.
public ShiftRightUnsigned ( ) : void
Результат void

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

Pops a value from the stack and stores it in the method argument with the given index.
public StoreArgument ( int argumentIndex ) : void
argumentIndex int The index of the argument to store into.
Результат void

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

Pops the array, index and value off the stack and stores the value in the array.
public StoreArrayElement ( Type type ) : void
type System.Type The element type.
Результат void

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

Pops a value off the stack and stores it in the given field.
public StoreField ( System field ) : void
field System The field to modify.
Результат void

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

Pops the value from the top of the stack and stores it in the given local variable.
public StoreVariable ( ILLocalVariable variable ) : void
variable ILLocalVariable The variable to store the value.
Результат void

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

Pops two values from the stack, subtracts the second from the first, then pushes the result to the stack.
public Subtract ( ) : void
Результат void

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

Creates a jump table. A value is popped from the stack - this value indicates the index of the label in the labels array to jump to.
public Switch ( ILLabel labels ) : void
labels ILLabel A array of labels.
Результат void

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

Pops an exception object off the stack and throws the exception.
public Throw ( ) : void
Результат void

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

Pops an object reference (representing a boxed value) from the stack, extracts the address, then pushes that address onto the stack.
public Unbox ( Type type ) : void
type System.Type The type of the boxed value. This should be a value type.
Результат void

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

Pops an object reference (representing a boxed value) from the stack, extracts the value, then pushes the value onto the stack.
public UnboxAny ( Type type ) : void
type System.Type The type of the boxed value. This should be a value type.
Результат void