ISymbolWriter.DefineLocalVariable 方法

定义

在当前词法范围内定义单个变量。

public:
 void DefineLocalVariable(System::String ^ name, System::Reflection::FieldAttributes attributes, cli::array <System::Byte> ^ signature, System::Diagnostics::SymbolStore::SymAddressKind addrKind, int addr1, int addr2, int addr3, int startOffset, int endOffset);
public void DefineLocalVariable (string name, System.Reflection.FieldAttributes attributes, byte[] signature, System.Diagnostics.SymbolStore.SymAddressKind addrKind, int addr1, int addr2, int addr3, int startOffset, int endOffset);
abstract member DefineLocalVariable : string * System.Reflection.FieldAttributes * byte[] * System.Diagnostics.SymbolStore.SymAddressKind * int * int * int * int * int -> unit
Public Sub DefineLocalVariable (name As String, attributes As FieldAttributes, signature As Byte(), addrKind As SymAddressKind, addr1 As Integer, addr2 As Integer, addr3 As Integer, startOffset As Integer, endOffset As Integer)

参数

name
String

局部变量名称。

attributes
FieldAttributes

局部变量特性的按位组合。

signature
Byte[]

局部变量签名。

addrKind
SymAddressKind

addr1addr2addr3 的地址类型。

addr1
Int32

局部变量规格的第一个地址。

addr2
Int32

局部变量规格的第二个地址。

addr3
Int32

局部变量规格的第三个地址。

startOffset
Int32

变量的起始偏移量。 如果此参数为零,则忽略此参数,并在整个范围内定义该变量。 如果此参数为非 0,则该变量将位于当前范围的偏移量之内。

endOffset
Int32

变量的结束偏移量。 如果此参数为零,则忽略此参数,并在整个范围内定义该变量。 如果此参数为非 0,则该变量将位于当前范围的偏移量之内。

注解

startOffsetendOffset 参数是可选参数。 如果它们的值为零,则忽略它们,并且在整个范围内定义变量。 如果变量值为非零值,则变量位于当前作用域的偏移量内。

可以多次调用 DefineLocalVariable 同名的变量,该变量在整个范围内在不同偏移范围内多次发生。 (在这种情况下,开始和结束偏移不得重叠。)

适用于