IDebugMethodField : : EnumLocals
Crée un énumérateur pour les variables locales sélectionnées de la méthode.
HRESULT EnumLocals(
IDebugAddress* pAddress,
IEnumDebugFields** ppLocals
);
int EnumLocals(
IDebugAddress pAddress,
out IEnumDebugFields ppLocals
);
Paramètres
pAddress
[in] Un objet d' IDebugAddress représentant l'adresse de débogage qui sélectionne le contexte ou la portée dont pour obtenir les données locales.ppLocals
[out] Retourne un objet d' IEnumDebugFields représentant une liste des variables locales ; sinon, retourne une valeur NULL s'il n'y a aucun local.
Valeur de retour
En cas de réussite, retourne S_OK ou retourne S_FALSE s'il n'y a aucun local. Sinon, retourne un code d'erreur.
Notes
Seuls les variables définies dans le bloc qui contient l'adresse donnée de débogage sont énumérées. Si toutes les heures locales notamment des variables locales générés par le compilateur sont nécessaires, appelez la méthode d' IDebugMethodField : : EnumAllLocals .
Une méthode peut contenir plusieurs contextes ou blocs de portée. par exemple, la méthode conçue suivante contient trois portées, les deux blocs internes et le corps de la méthode elle-même.
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;
}
}
l'objet d' IDebugMethodField représente la méthode d' func elle-même. Appelant la méthode d' EnumLocals avec IDebugAddress défini à l'adresse d' Inner Scope 1 retourne une énumération contenant la variable d' temp1 , par exemple.