Condividi tramite


IDebugMethodField:: EnumLocals

Crea un enumeratore per le variabili locali selezionate del metodo.

HRESULT EnumLocals( 
   IDebugAddress*     pAddress,
   IEnumDebugFields** ppLocals
);
int EnumLocals(
   IDebugAddress        pAddress, 
   out IEnumDebugFields ppLocals
);

Parametri

  • pAddress
    [in] IDebugAddress Un oggetto che rappresenta l'indirizzo di debug che seleziona il contesto o l'ambito da cui ottenere le variabili locali.

  • ppLocals
    [out] Restituisce IEnumDebugFields un oggetto che rappresenta un elenco di locali; in caso contrario, restituisce un valore null se non vi sono locali.

Valore restituito

Se l'operazione riesce, restituisce S_OK o restituisce S_FALSE se non vi sono locali. In caso contrario, restituisce un codice di errore.

Note

Solo le variabili definite all'interno del blocco contenente l'indirizzo specificato di debug vengono enumerate. Se tutti i locali incluse variabili locali generati dal compilatore sono necessari, chiamare IDebugMethodField:: EnumAllLocals il metodo.

Un metodo può contenere più contesti o i blocchi di definizione. Ad esempio, il seguente metodo inventato contiene tre ambiti, i due blocchi interni e il corpo del metodo.

public void func(int index)
{
    // Method body scope
    int a = 0;
    if (index == 1)
    {
        // Inner scope 1
        int temp1 = a;
    }
    else
    {
        // Inner scope 2
        int temp2 = a;
    }
}

IDebugMethodField l'oggetto rappresenta il metodo stesso di func . Chiamando il metodo di EnumLocals con IDebugAddress un insieme all'indirizzo di Inner Scope 1 restituisce un'enumerazione che contiene la variabile di temp1 , ad esempio.

Vedere anche

Riferimenti

IDebugMethodField

IDebugAddress

IEnumDebugFields

IDebugMethodField:: EnumAllLocals