Běžné funkce vyhodnocení výrazu
Toto téma popisuje různé funkce vyhodnocení výrazu, které jsou společné pro ladicí program různé pouze podle jazyka.
Implicitní proměnné
V jazyce Visual Basic a C#, můžete vytvořit implicitní proměnné pomocí vyhodnocení výrazu.Tyto proměnné implicitní nikdy dostanou mimo rozsah a mohou být považovány za jiné proměnné.
V jazyce C# můžete vytvořit implicitní proměnné prohlášením na vyhodnocení výrazu.Můžete například zadat následující C# kód v okamžité okna:
int b = 100;
Po spuštění tohoto kódu v okamžité , nové implicitní proměnné zobrazí okno Locals okno s $ znaménko před název proměnné, v tomto případě $b.
V jazyce Visual Basic nelze deklarovat proměnné implicitní vyhodnocení výrazu.Však použijete-černo proměnné vyhodnocení výrazu jazyka Visual Basic, implicitní proměnná je automaticky vytvořena.V jazyce Visual Basic implicitní proměnné nejsou uvedeny Locals okna.
Zarážky
Pokud pomocí okna Immediate vyhodnotit metody jazyka Visual Basic nebo C# nebo funkce, která obsahuje zarážku přístupů na tento bod přerušení a nový rámeček se zobrazí na Zásobník volání.Zde je příklad C#:
class Program
{
static void Main(string[] args)
{
// Breakpoint here:
int a = 20;
}
}
Je-li nastavit zarážku, kde označuje komentář, sestavit a spustit program stisknutím klávesy F5 bude pravidelně přístupů zarážka.Pokud nyní vyhodnotit metody Main zadáním Program.Main(null) do okamžité okna, zarážka bude přístupů podruhé a na bude položka pro metodu Zásobník volání.
Hodnocení v okně kukátka
Chcete-li se vyhnout možné nežádoucí vedlejší účinky, volání funkce nebo metody není vyhodnocena automaticky pokaždé, který takto ladicí program.Místo toho ikonu můžete ručně aktualizovat výsledek.Zobrazí se v hodnotu sloupce.Umožňuje vyhodnotit volání ručně.Další informace naleznete v tématu Vedlejší účinky a výrazy.
Identita objektu
Tato funkce není k dispozici pro Visual Basic.
Některé aplikace vytvářejí mnoho instancí třídy.V těchto aplikacích je často užitečné mít identifikátor k rozlišení dané instance třídy.To lze využít, například pokud konkrétní instance třídy nepracuje podle očekávání nebo konkrétní instance bylo vloženo více než jednou do kolekce, která by měla obsahovat pouze ji jednou.
Nativní objekt Identity
Při ladění nespravovaný kód můžete objekt jednoznačně identifikovat pomocí jeho adresy.To je důležité pro dva důvody:
Objekt lze sledovat pouze pomocí jeho adresu.To zahrnuje schopnost používat adresy:
Zobrazení hodnoty objektu na této adrese.
Kontrola rovnosti.Adresa objektu často lze stejným způsobem jako samotné objektové proměnné.
Adresa objektu instance, lze nastavit zarážky na metodu v konkrétní instanci.
Předpokládejme například, že jste objekt, který je instancí třídy CMyType, s adresou 0xcccccccc.Funkce zarážky můžete určit metodu aMethod , instance takto:
((CMyType *) 0xcccccccc)->aMethod
Spravované Identity objektu
Se spravovaným kódem nelze použít k identifikaci adresy objektu.Místo toho použijte celé známé jako ID objektu generovány modul common language runtime (CLR) ladění služby a přidružená k objektu.Toto číslo je kladné celé číslo generované CLR ladění služby.Hodnota ID objektu nemá žádný význam, s výjimkou, aby jednoznačně identifikovaly objekt.
Úchyty objektu jsou zobrazeny jako proměnné délky, desetinné celá čísla se znaménkem čísla (#) připojen za číslo bez úvodní nuly, jako například 5#.V úchyty hodnotu v systému windows debugger různé datové sloupce.
Chcete-li vytvořit ID objektu pro proměnnou proměnné klepněte pravým tlačítkem a vyberte ID objektu provést.Ladicí program zobrazí číslo s křížku (#) připojen po, například znak 123#.Chcete-li odstranit ID objektu proměnné klepněte pravým tlačítkem a vyberte Odstranit ID objektu.
Zasáhne zarážky můžete zadat úchyt na proměnnou do sledovat okna.Ladicí program zobrazí hodnotu ID objektu a můžete rozbalit a kontrolovat stejně jako jiné proměnné.
ID objektu lze nastavit zarážky pro metodu konkrétní instance.Předpokládejme například, že jste objekt, který je instancí třídy CMyType, a instance má ID objektu 5#.Třída CMyType zahrnuje metodu aMethod.Funkce zarážky můžete nastavit metodu aMethod instance 5# takto:
((CMyType) 5#).aMethod
ID objektu můžete použít také podmínku zarážky.Následující příklad ukazuje, jak lze otestovat ID objektu v podmínce.
this == 5#
Informace o tom, jak určit podmínku breakpoint Jak: Zadejte podmínku zarážky.