Expression.Multiply Metódus

Definíció

BinaryExpression Olyan aritmetikai szorzási műveletet jelöl, amely nem rendelkezik túlcsordulás-ellenőrzéssel.

Túlterhelések

Name Description
Multiply(Expression, Expression, MethodInfo)

BinaryExpression Olyan aritmetikai szorzási műveletet jelöl, amely nem rendelkezik túlcsordulás-ellenőrzéssel.

Multiply(Expression, Expression)

BinaryExpression Olyan aritmetikai szorzási műveletet jelöl, amely nem rendelkezik túlcsordulás-ellenőrzéssel.

Multiply(Expression, Expression, MethodInfo)

BinaryExpression Olyan aritmetikai szorzási műveletet jelöl, amely nem rendelkezik túlcsordulás-ellenőrzéssel.

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

Paraméterek

left
Expression

Egy Expression a tulajdonság egyenlő értékének beállításához Left .

right
Expression

Egy Expression a tulajdonság egyenlő értékének beállításához Right .

method
MethodInfo

A MethodInfo érték a Method tulajdonság egyenlő értékének beállításához.

Válaszok

Az BinaryExpression a tulajdonság, amelynek NodeType a tulajdonsága megegyezik Multiply , és a Left, Rightés Method a tulajdonságok a megadott értékekre vannak állítva.

Kivételek

left vagy right az null.

method nem null és az általa képviselt metódus void, nem static (Shared Visual Basic), vagy nem vesz fel pontosan két argumentumot.

method van, null és a szorzási operátor nincs definiálva a következőhöz left: . Írja be és right. Típus.

Megjegyzések

Az eredményként kapott BinaryExpression tulajdonság a Method implementálási módszerre van állítva. A Type tulajdonság a csomópont típusára van állítva. Ha a csomópont felemelkedik, a IsLifted és IsLiftedToNull tulajdonságok egyaránt true. Ellenkező esetben azok.false A Conversion tulajdonság null.

Az alábbi információk a implementálási módszert, a csomópont típusát és a csomópontok feloldását ismertetik.

Implementálási módszer

A művelet implementálási módját a következő szabályok határozzák meg:

  • Ha method nem null, és nem üres, static (Shared Visual Basic) metódust jelöl, amely két argumentumot vesz fel, akkor ez a csomópont implementálási módszere.

  • Ellenkező esetben, ha egy Type felhasználó által definiált típus tulajdonsága leftright túlterheli a szorzási operátort, akkor az MethodInfo a metódus a implementálási módszer.

  • Ellenkező esetben, ha left. Típus és right. Típus numerikus típusok, az implementálási módszer pedig null.

Csomópont típusa és emelt és nem emelt

Ha a végrehajtási módszer nem null:

  • Ha left. Típus és right. Típus hozzárendelhetőek az implementáló módszer megfelelő argumentumtípusaihoz, a csomópont nem kerül feloldásra. A csomópont típusa a implementálási módszer visszatérési típusa.

  • Ha a következő két feltétel teljesül, a csomópontot a rendszer feloldja, és a csomópont típusa az a null értékű típus, amely megfelel a implementálási módszer visszatérési típusának:

    • left.Típus és right.Típus egyaránt olyan értéktípus, amelyek közül legalább az egyik nullable, és a megfelelő nem null értékű típusok megegyeznek az implementáló metódus megfelelő argumentumtípusaival.

    • Az implementáló metódus visszatérési típusa egy nem-null értékkel rendelkező értéktípus.

Ha a implementálási módszer a következő null:

  • Ha left.Típus és right.Típus mindkettő nem null értékű, a csomópont nincs megemelve. A csomópont típusa az előre definiált szorzási operátor eredménytípusa.

  • Ha left. Type és right. type mindkettő nullable típus, a csomópont fel van emelve. A csomópont típusa az előre definiált szorzási operátor eredménytípusának megfelelő null értékű típus.

A következőre érvényes:

Multiply(Expression, Expression)

BinaryExpression Olyan aritmetikai szorzási műveletet jelöl, amely nem rendelkezik túlcsordulás-ellenőrzéssel.

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

Paraméterek

left
Expression

Egy Expression a tulajdonság egyenlő értékének beállításához Left .

right
Expression

Egy Expression a tulajdonság egyenlő értékének beállításához Right .

Válaszok

Az BinaryExpression a tulajdonság, amelynek a NodeType tulajdonsága megegyezikMultiply, és Right a Left tulajdonságok a megadott értékekre vannak állítva.

Kivételek

left vagy right az null.

A szorzási operátor nincs definiálva a következőhöz left: . Írja be és right. Típus.

Példák

Az alábbi példakód bemutatja, hogyan hozhat létre két értéket szorzó kifejezést.

// 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

Megjegyzések

Az eredményként kapott BinaryExpression tulajdonság a Method implementálási módszerre van állítva. A Type tulajdonság a csomópont típusára van állítva. Ha a csomópont felemelkedik, a IsLifted és IsLiftedToNull tulajdonságok egyaránt true. Ellenkező esetben azok.false A Conversion tulajdonság null.

Az alábbi információk a implementálási módszert, a csomópont típusát és a csomópontok feloldását ismertetik.

Implementálási módszer

A művelethez a következő szabályok határozzák meg a kiválasztott implementálási módszert:

  • Ha egy Type felhasználó által definiált típus tulajdonsága left túlterheli right a szorzási operátort, akkor az MethodInfo a metódus a implementálási módszer.

  • Ellenkező esetben, ha left. Típus és right. Típus numerikus típusok, az implementálási módszer pedig null.

Csomópont típusa és emelt és nem emelt

Ha a végrehajtási módszer nem null:

  • Ha left. Típus és right. Típus hozzárendelhetőek az implementáló módszer megfelelő argumentumtípusaihoz, a csomópont nem kerül feloldásra. A csomópont típusa a implementálási módszer visszatérési típusa.

  • Ha a következő két feltétel teljesül, a csomópontot a rendszer feloldja, és a csomópont típusa az a null értékű típus, amely megfelel a implementálási módszer visszatérési típusának:

    • left.Típus és right.Típus egyaránt olyan értéktípus, amelyek közül legalább az egyik nullable, és a megfelelő nem null értékű típusok megegyeznek az implementáló metódus megfelelő argumentumtípusaival.

    • Az implementáló metódus visszatérési típusa egy nem-null értékkel rendelkező értéktípus.

Ha a implementálási módszer a következő null:

  • Ha left.Típus és right.Típus mindkettő nem null értékű, a csomópont nincs megemelve. A csomópont típusa az előre definiált szorzási operátor eredménytípusa.

  • Ha left. Type és right. type mindkettő nullable típus, a csomópont fel van emelve. A csomópont típusa az előre definiált szorzási operátor eredménytípusának megfelelő null értékű típus.

A következőre érvényes: