ILGenerator.Emit Method (OpCode, LocalBuilder)
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the index of the given local variable.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Overridable Sub Emit ( _
opcode As OpCode, _
local As LocalBuilder _
)
public virtual void Emit(
OpCode opcode,
LocalBuilder local
)
Parameters
- opcode
Type: System.Reflection.Emit.OpCode
The MSIL instruction to be emitted onto the stream.
- local
Type: System.Reflection.Emit.LocalBuilder
A local variable.
Exceptions
Exception | Condition |
---|---|
ArgumentException | The parent method of the local parameter does not match the method associated with this ILGenerator. |
ArgumentNullException | local is nulla null reference (Nothing in Visual Basic). |
InvalidOperationException | opcode is a single-byte instruction, and local represents a local variable with an index greater than Byte.MaxValue. |
Examples
The following example demonstrates the use of Emit method overloads to emit an instruction with no target, an instruction that requires a LocalBuilder, and an instruction that requires a Label. This code is part of a larger example provided for the BeginExceptionBlock method.
' The addition failed, but the function has to return an integer value, so
' store -1 in the local variable named result. Use the Leave instruction to
' exit the catch block. The finally block will be executed.
'
adderIL.Emit(OpCodes.Ldc_I4_M1)
adderIL.Emit(OpCodes.Stloc, result)
adderIL.Emit(OpCodes.Leave_S, exTryCatchFinally)
// The addition failed, but the function has to return an integer value, so
// store -1 in the local variable named result. Use the Leave instruction to
// exit the catch block. The finally block will be executed.
//
adderIL.Emit(OpCodes.Ldc_I4_M1);
adderIL.Emit(OpCodes.Stloc, result);
adderIL.Emit(OpCodes.Leave_S, exTryCatchFinally);
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.