Sdílet prostřednictvím


Výrazy (Příručka programování C#)

Výraz je posloupnost jednoho nebo více operandů a nula nebo více subjekty, které může být vyhodnocen jako jediná hodnota, objekt, metoda nebo oboru názvů.Výrazy mohou být tvořeny hodnotu literálu, vyvolání metody, operátor a jeho operandy nebo jednoduchý název.Jednoduché názvy může být název proměnné, typ člena, parametru metody, obor názvů nebo typ.

Výrazy můžete použít operátory, které zase použít jiné výrazy jako parametry nebo volání metody, jehož parametry jsou zase další volání metody tak rozsahu od jednoduchých výrazů až velmi složité.Dva příklady výrazů jsou následující:

((x < 10) && ( x > 5)) || ((x > 20) && (x < 25)) 
System.Convert.ToInt32("35")

Hodnoty výrazu

Ve většině oblastí, ve kterých se používají výrazy, například příkazy nebo parametry metody očekává vyhodnotit hodnotu výrazu.Pokud x a y jsou celá čísla, výraz x + y vyhodnocen na hodnotu číselnou.Výraz new MyClass() vyhodnocen jako odkaz na novou instanci MyClass objektu.Výraz myClass.ToString() vyhodnotí řetězec, protože se jedná o typ vrácení metody.Ačkoli název oboru názvů je klasifikována jako výraz, však nelze vyhodnotit na hodnotu a proto nemůže být nikdy konečný výsledek jakýkoli výraz.Nelze předat název oboru názvů parametru metody nebo použijte nový výraz nebo přiřadit proměnné.Můžete použít pouze jej jako vykazovat větší výrazu.Totéž platí pro typy (od System.Type objekty), názvy skupin metody (od specifické metody) a události Přidat a Odebrat přístupové objekty.

Každá hodnota má přidružený typ.Například pokud x a y jsou obě proměnné typu int, hodnota výrazu x + y zadána jako int.Pokud je hodnota přiřazena proměnné jiný typ nebo x a y jsou různé typy, jsou použita pravidla převodu typu.Další informace o těchto převodech naleznete v Obsazení a převody typu (Příručka programování C#).

Přetečení

Pokud je hodnota větší než maximální hodnota hodnota typu, numerických výrazů může způsobit přetečení.Další informace naleznete v tématu Kontrolovány a nekontrolované (C#-Reference) a Explicitní číselné tabulky převody (C#-Reference).

Přednost a asociativita operátorů

Pravidla přednosti asociativitu a operátor se řídí způsob, jakým je výraz vyhodnocen.Další informace naleznete v tématu Operátory (Příručka programování C#).

Většina výrazy, s výjimkou výrazů přiřazení a výrazy vyvolání metody, musí být vložený v příkazu.Další informace naleznete v tématu Příkazy (Příručka programování C#).

Literály a jednoduché názvy.

Nejjednodušší dva typy výrazů jsou jednoduché názvy a literály.Literál je konstantní hodnotu, která nemá žádný název.Například v následujícím příkladu kódu obě 5 a "Hello World" jsou hodnoty literálu:

// Expression statements.
int i = 5;
string s = "Hello World";

Další informace o literály, viz Typy (C#-Reference).

V předchozím příkladu i i a s jsou jednoduché názvy, které identifikují místní proměnné.Při těchto proměnných ve výrazu, název proměnné vyhodnocen jako hodnota, který je uložen v proměnné umístění v paměti.To je ukázáno v následujícím příkladu:

int num = 5;
System.Console.WriteLine(num); // Output: 5
num = 6;
System.Console.WriteLine(num); // Output: 6            

Výrazy vyvolání

V následujícím příkladu kódu volání DoWork je výraz vyvolání.

DoWork();

Vyvolání metody vyžaduje název metody, jako název jako v předchozím příkladu nebo v důsledku jiného výrazu, následovaný závorky a parametry metody.Další informace naleznete v tématu Metody (Příručka programování C#).Vyvolání delegát používá jméno delegáta a metoda parametry v závorkách.Další informace naleznete v tématu Delegáti (Příručka programování C#).Vyvolání metody a vyvolání Delegát vyhodnocení vrácenou hodnotu metody, pokud metoda vrátí hodnotu.Metody, které vracet typ void nelze použít namísto hodnoty ve výrazu.

Výrazy dotazu

Stejná pravidla pro výrazy se obecně vztahuje na výrazech dotazu.Další informace naleznete v tématu LINQ dotazu výrazy (Příručka programování C#).

Lambda výrazy

Lambda výrazy představují "vložené metody", které žádný název, ale můžete mít vstupní parametry a vícenásobné příkazy.Tyto jsou často používány v LINQ předat argumenty metody.Lambda výrazy jsou kompilovány do delegáty nebo výraz stromy v závislosti na kontextu, ve kterém jsou použity.Další informace naleznete v tématu Lambda výrazy (Příručka programování C#).

Výraz stromy

Výraz stromy povolit výrazů je znázorněno jako datové struktury.Používají se široce poskytovatelé LINQ přeložit dotaz výrazy do kódu, který je srozumitelný v jiné souvislosti, jako je například databáze SQL.Další informace naleznete v tématu Výraz stromů (C# a Visual Basic).

Poznámky

Při každém z výrazu je identifikován proměnné, vlastnosti objektu nebo přístup k objektu indexeru, hodnota položky slouží jako hodnota výrazu.Výraz mohou být umístěny kdekoli v jazyce C# kde hodnota nebo objekt je požadováno, jako je výraz vyhodnocen jako nakonec požadovaný typ.

Kapitola hlavní knihy

Proměnných a výrazů v začátek Visual C# 2010

Viz také

Referenční dokumentace

Metody (Příručka programování C#)

Delegáti (Příručka programování C#)

Operátory (Příručka programování C#)

Typy (Příručka programování C#)

Koncepty

Příručka programování C#

LINQ dotazu výrazy (Příručka programování C#)