Výrazy v jazyce C# a F#
Vyhodnocení výrazu spravované přijímá většinu výrazy napsané v jazyce C#.
Vyhodnocení výrazu spravované F# výrazy, ale nerozpozná.Jestliže ladíte F#, je třeba přeložit do syntaxe jazyka C# výrazech před zadáním výrazy do pole ladicí okno nebo dialogové okno.Když převádíte výrazy z F# C#, nezapomeňte Pamatujte, že C# používá == test rovnosti, zatímco F# = jeden používá operátor.
Následující oddíly nabízejí konkrétní informace a diskutovat o některé typy výrazů, které jsou podporovány nebo částečně podporovány:
Casts
Dynamic Objects
Identifiers and Types
Method Evaluation
Operators
Overloaded Operators
Property Evaluation
Strings
typeof and sizeof Operators
WebMethods
Vyhodnocení výrazu ignoruje public, protected, internal, a private modifikátory přístupu.Můžete volat private metoda z sledovat okna, například.Protože vyhodnocení výrazu ignoruje modifikátory přístupu, je možné neočekávané zatížení být.
Vyhodnocení výrazu provádí implicitní kontextu unsafe všechna hodnocení, zda je kód spuštěn bezpečné nebo nebezpečné.
Vyhodnocení výrazu také ignoruje kontrolované bloky a /checked volba kompilátoru.Všechny výrazy jsou vyhodnocovány v Nekontrolovaná kontextu.
Můžete upravit zobrazení vlastní typy dat pomocí atributů.Další informace naleznete v Zobrazení vlastní datové typy.
Nádech
Osazení jednoduché výrazy pracují v debuggeru:
(A)x
Nádech, které se týkají ukazatelů nefungují v debuggeru.
Dynamické objekty
Vyhodnocení výrazu lze vyhodnotit proměnné, které jsou staticky zadávané jako dynamické.Lze hodnotit také objekty, které implementují rozhraní IDynamicObject.Když jsou objekty, které implementují rozhraní IDynamicObject vyhodnocovány v sledovat okno dynamické zobrazení přidán uzel.Dynamické zobrazení uzlu objektu členy se zobrazí, ale neumožňuje úpravy hodnot členů.
Následující funkce dynamických objektů nejsou podporovány:
Operátory složené +=,-=, % = / =, a * =
Mnoho nádech, včetně nádech číselný argument typ nádech
Volání metody s více než dva argumenty.
Mechanismy získání vlastnosti s více než dva argumenty.
Nastavení vlastností s argumenty
Přiřazení indexovací člen.
Logické operátory && a||
Typy a identifikátory
Debugger výrazy můžete použít libovolný identifikátor viditelné v aktuálním oboru.Pokud debugger je zastavena v metodě Magh, například můžete použít libovolný identifikátor viditelný v Magh, včetně metody názvy, názvy proměnných a konstant.
Ladicí program správně zobrazit všechny proměnné základní, výčtu nebo typ vnitřní.Pro proměnné typu třídy debugger správně zobrazí hodnoty založené na typu odvozené většinu.Pokud máte objekt leo typu Lion, odvozený z typu Cat, je možné vyhodnotit leo.Claws a získat správné hodnoty pro objekt typu Lion.
Na levém výraz, který je l hodnota můžete přiřadit novou hodnotu.To zahrnuje základní třídy, a System.Object typy.
Metody hodnocení
Ladicí program podporuje hodnocení metod, včetně metod přetížené.Proto můžete zadat buď následující výrazy a ladicí nástroj bude volat správnou verzi přetížené metody:
Time.Set();
Time.Set(atime);
Metoda v debuggeru hodnocení skutečně volá a spustí kód pro danou metodu.Pokud metoda má vedlejší účinky, bude ladicí okno metoda hodnocení změnit stav programu, což může vést k neočekávaným výsledkům.
Pokud nastavíte zarážku na přetížená metoda, umístění zarážka závisí na jak určit metodu.Zadáte úplný podpis (název metody a argument úplný seznam), nastaví debugger určený přetížení jednu zarážku.Pokud zadáte název metody, chování ladicího programu závisí na Visual Studio možnosti nastavení.Pokud Použití technologie IntelliSense ověřte název funkce není zaškrtnuto políčko, bude ladicí program nastavit jednu zarážku každý přetížení název metody.Jinak Vyberte zarážku se otevře dialogové okno umožňující určit, které overload(s) do zarážka.Další informace naleznete v tématu Jak: nastavení funkce zarážky.
Vytvoření nové anonymní metody nejsou podporovány v ladicím programu v této verzi Visual Studio.
Operátory
Ladicí program správně vyhodnotí nejvíce vestavěné operátorů, včetně:
Relational and equality operators: ( expr1> expr2, expr1< expr2, expr1<= expr2, expr1=> expr2, expr1== expr2, expr1!= expr2).
Boolean operators: (expr1&& expr2, expr1|| expr2, expr1? expr2: expr3).
Arithmetical operators: (expr1+ expr2,expr1- expr2, expr1* expr2, expr1/ expr2, expr1% expr2 ).
Logical operators: (expr1& expr2, expr1^ expr2, expr1| Výraz2 ).
Shift operators: (expr1>> expr2, expr1<< expr2 ).
Assignment operators: ( lvalue= expr2,lvalue*= expr2,lvalue/= expr2, lvalue%= expr2, lvalue+= expr2, lvalue-= expr2, lvalue<<= expr2, lvalue>>= expr2, lvalue&= expr2, lvalue^= expr2, lvalue|= expr2).
Unary operators: ( +expr1, - expr1, expr1++, ++expr1, expr1--, --expr1).
Přetížené operátory
Nejvíce přetížené operátory pracují v debuggeru.
Přetížené operátory zaváděcí +, -, /, %, a & práce:
Výraz1+ Výraz2
Výraz1- Výraz2
Výraz1/ Výraz2
Výraz1% Výraz2
Výraz1& Výraz2
Přetížené operátory zaváděcí =, & & &, a ||, nefungují:
Výraz1= Výraz2
Výraz1&& Výraz2
Výraz1& Výraz2
Výraz1|| Výraz2
Přetížené operátory zaváděcí << a >> Pokud jsou oba operandy proměnné třídy nefungují:
Objekt1 <<object2
Objekt1>> object2
Přetížení předponové operátory +, -, ++,--,!, a ~ práce:
+Výraz1
-Výraz1
++Výraz1
--Výraz1
!Výraz1
~Výraz1
Přetížení přípona operátorů ++ a--práce:
Výraz1++
Výraz1--
Indexování Přetížená práce:
- Výraz1[Výraz2]
Vlastnost hodnocení
Ladicí program lze vyhodnotit vlastnosti v okně všechny proměnné.Vlastnosti v debuggeru hodnocení může mít vedlejší účinky, které neočekávané a nežádoucí výsledky.Chcete-li chránit proti vedlejší účinky způsobené náhodným hodnocení můžete vypnout vlastnost hodnocení Možnosti dialogové okno.
Řetězce
Ladicí program rozpoznává operátor Indexované při použití s řetězci, stejně jako matice.Takže například můžete zadat:
"hello world"[0]
Sledovat okno zobrazí správné hodnoty:
'h'
V jazyce C#, na rozdíl od nativní C/C++ můžete upravit hodnotu řetězce v debuggeru.Kromě toho můžete použít Length operátor na řetězec:
mystring.Length
-nebo-
"hello world".Length
V jazyce C# je zřetězení řetězců:
"hello" + "world"
Provozovatelé typeof a sizeof
Podporuje ladicí program typeof a sizeof operátor transformací do odpovídající .NET Framework funkce.
typeof ( výraz)
transformaci:
System.Type.GetType( výraz)
Ladicí program vyhodnocuje transformovaný výraz.
Podporuje ladicí program sizeof operátor.
Prvkům WebMethod
Prvkům WebMethod nelze volat z ladicí program systému windows.