Expression.Multiply Metoda

Definice

BinaryExpression Vytvoří operaci aritmetické násobení, která nemá kontrolu přetečení.

Přetížení

Multiply(Expression, Expression, MethodInfo)

BinaryExpression Vytvoří operaci aritmetické násobení, která nemá kontrolu přetečení.

Multiply(Expression, Expression)

BinaryExpression Vytvoří operaci aritmetické násobení, která nemá kontrolu přetečení.

Multiply(Expression, Expression, MethodInfo)

BinaryExpression Vytvoří operaci aritmetické násobení, která nemá kontrolu přetečení.

public:
 static System::Linq::Expressions::BinaryExpression ^ Multiply(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression Multiply (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression Multiply (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member Multiply : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function Multiply (left As Expression, right As Expression, method As MethodInfo) As BinaryExpression

Parametry

left
Expression

Vlastnost Expression je nastavena na hodnotu rovna Left .

right
Expression

Vlastnost Expression je nastavena na hodnotu rovna Right .

method
MethodInfo

A MethodInfo pro nastavení Method vlastnosti rovno.

Návraty

BinaryExpression

ABinaryExpression, který má NodeType vlastnost rovna Multiply a LeftRightvlastnosti , a Method vlastnosti nastavené na zadané hodnoty.

Výjimky

left nebo right je null.

methodnení null a metoda, která představuje vrátí void, není static (Shared v Visual Basic) nebo nebere přesně dva argumenty.

method je null a operátor násobení není definován pro left. Typ a right. Typ.

Poznámky

Výsledek BinaryExpressionMethod vlastnost nastavenou na implementovací metodu. Vlastnost Type je nastavena na typ uzlu. Pokud je uzel zvednut, IsLifted jsou obě vlastnosti IsLiftedToNull true. Jinak jsou false. Vlastnost Conversion je null.

Následující informace popisují implementovanou metodu, typ uzlu a to, jestli je uzel zvednut.

Implementace metody

Následující pravidla určují metodu implementace operace:

  • Pokud method není null a představuje neprázdnou static metodu (Sharedv Visual Basic), která přijímá dva argumenty, je to implementovaná metoda pro uzel.

  • V opačném případě, pokud Type vlastnost buď left nebo right představuje uživatelem definovaný typ, který přetíží operátor násobení, MethodInfo to představuje tuto metodu implementační metoda.

  • V opačném případě, pokud left. Typ a right. Typ jsou číselné typy, implementovaná metoda je null.

Typ uzlu a zrušeno vs. nezrušeno

Pokud implementovaná metoda není null:

  • Pokud left. Typ a right. Typ je možné přiřadit odpovídajícím typům argumentů implementované metody, uzel není zvednut. Typ uzlu je návratový typ implementové metody.

  • Pokud jsou splněny následující dvě podmínky, uzel se zvedne a typ uzlu je typ nullable, který odpovídá návratového typu implementované metody:

    • left. Typ a right. Typ jsou oba typy hodnot, z nichž nejméně jeden má hodnotu null, a odpovídající typy bez null se rovnají odpovídajícím typům argumentů implementované metody.

    • Návratový typ implementované metody je typ nenulové hodnoty.

Pokud je implementovaná metoda null:

  • Pokud left. Typ a right. Typ nemá hodnotu null, uzel se nezruší. Typ uzlu je typ výsledku předdefinovaného operátoru násobení.

  • Pokud left. Typ a right. Typ je nullable, uzel se zvedne. Typ uzlu je typ nullable, který odpovídá typu výsledku předdefinovaného operátoru násobení.

Platí pro

Multiply(Expression, Expression)

BinaryExpression Vytvoří operaci aritmetické násobení, která nemá kontrolu přetečení.

public:
 static System::Linq::Expressions::BinaryExpression ^ Multiply(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Multiply (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Multiply : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Multiply (left As Expression, right As Expression) As BinaryExpression

Parametry

left
Expression

Vlastnost Expression je nastavena na hodnotu rovna Left .

right
Expression

Vlastnost Expression je nastavena na hodnotu rovna Right .

Návraty

BinaryExpression

A BinaryExpression , která má NodeType vlastnost rovna Multiply a Left vlastnosti Right nastavené na zadané hodnoty.

Výjimky

left nebo right je null.

Operátor násobení není definován pro left. Typ a right. Typ.

Příklady

Následující příklad kódu ukazuje, jak vytvořit výraz, který vynásobí dvě hodnoty.

// Add the following directive to your file:
// using System.Linq.Expressions;

// This expression multiplies its two arguments.
// Both arguments must be of the same type.
Expression multiplyExpr = Expression.Multiply(
    Expression.Constant(10),
    Expression.Constant(4)
);

// Print out the expression.
Console.WriteLine(multiplyExpr.ToString());

// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(
    Expression.Lambda<Func<int>>(multiplyExpr).Compile()());

// This code example produces the following output:
//
// (10*4)
// 40
' Add the following directive to your file:
' Imports System.Linq.Expressions  

' This expression multiplies its two arguments.
' Both arguments must be of the same type.
Dim multiplyExpr As Expression = Expression.Multiply(
    Expression.Constant(10),
    Expression.Constant(4)
)

' Print the expression.
Console.WriteLine(multiplyExpr.ToString())

' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(
    Expression.Lambda(Of Func(Of Integer))(multiplyExpr).Compile()())

' This code example produces the following output:
'
' (10*4)
' 40

Poznámky

Výsledek BinaryExpressionMethod vlastnost nastavenou na implementovací metodu. Vlastnost Type je nastavena na typ uzlu. Pokud je uzel zvednut, IsLifted jsou obě vlastnosti IsLiftedToNull true. Jinak jsou false. Vlastnost Conversion je null.

Následující informace popisují implementovanou metodu, typ uzlu a to, jestli je uzel zvednut.

Implementace metody

Následující pravidla určují vybranou metodu implementace operace:

  • Type Pokud vlastnost buď left nebo right představuje uživatelem definovaný typ, který přetíží operátor násobení, MethodInfo představuje tuto metodu implementační metoda.

  • V opačném případě, pokud left. Typ a right. Typ jsou číselné typy, implementovaná metoda je null.

Typ uzlu a zrušeno vs. nezrušeno

Pokud implementovaná metoda není null:

  • Pokud left. Typ a right. Typ je možné přiřadit odpovídajícím typům argumentů implementované metody, uzel není zvednut. Typ uzlu je návratový typ implementové metody.

  • Pokud jsou splněny následující dvě podmínky, uzel se zvedne a typ uzlu je typ nullable, který odpovídá návratového typu implementované metody:

    • left. Typ a right. Typ jsou oba typy hodnot, z nichž nejméně jeden má hodnotu null, a odpovídající typy bez null se rovnají odpovídajícím typům argumentů implementované metody.

    • Návratový typ implementované metody je typ nenulové hodnoty.

Pokud je implementovaná metoda null:

  • Pokud left. Typ a right. Typ nemá hodnotu null, uzel se nezruší. Typ uzlu je typ výsledku předdefinovaného operátoru násobení.

  • Pokud left. Typ a right. Typ je nullable, uzel se zvedne. Typ uzlu je typ nullable, který odpovídá typu výsledku předdefinovaného operátoru násobení.

Platí pro