This documentation is archived and is not being maintained.

ILGenerator.DeclareLocal Method (Type, Boolean)

Note: This method is new in the .NET Framework version 2.0.

Declares a local variable of the specified type, optionally pinning the object referred to by the variable.

Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)

public virtual LocalBuilder DeclareLocal (
	Type localType,
	bool pinned
public LocalBuilder DeclareLocal (
	Type localType, 
	boolean pinned
public function DeclareLocal (
	localType : Type, 
	pinned : boolean
) : LocalBuilder



A Type object that represents the type of the local variable.


true to pin the object in memory; otherwise, false.

Return Value

A LocalBuilder object that represents the local variable.

Exception typeCondition


localType is a null reference (Nothing in Visual Basic).


The containing type has been created by the TypeBuilder.CreateType method.


The method body of the enclosing method has been created by the MethodBuilder.CreateMethodBody method.


The method with which this ILGenerator is associated is not represented by a MethodBuilder.

The local variable is created in the current lexical scope; for example, if code is being emitted in a for loop (For loop in Visual Basic), the scope of the variable is the loop.

In unsafe code, an object must be pinned before it can be referred to by an unmanaged pointer. While the referenced object is pinned, it cannot be moved by garbage collection.

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0