Expression.OrElse Yöntem

Tanım

yalnızca ilk işleç olarak değerlendirilirse ikinci işleneni değerlendiren falsebir koşullu OR işlemi temsil eden bir BinaryExpression oluşturur.

Aşırı Yüklemeler

OrElse(Expression, Expression)

yalnızca ilk işlenen olarak değerlendirilirse ikinci işleneni değerlendiren falsebir koşullu OR işlemi temsil eden bir BinaryExpression oluşturur.

OrElse(Expression, Expression, MethodInfo)

yalnızca ilk işlenen olarak değerlendirilirse ikinci işleneni değerlendiren falsebir koşullu OR işlemi temsil eden bir BinaryExpression oluşturur.

OrElse(Expression, Expression)

Kaynak:
BinaryExpression.cs
Kaynak:
BinaryExpression.cs
Kaynak:
BinaryExpression.cs

yalnızca ilk işlenen olarak değerlendirilirse ikinci işleneni değerlendiren falsebir koşullu OR işlemi temsil eden bir BinaryExpression oluşturur.

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

Parametreler

left
Expression

Özelliğinin Left değerine eşit olarak ayarlanması için birExpression.

right
Expression

Özelliğinin Right değerine eşit olarak ayarlanması için birExpression.

Döndürülenler

BinaryExpression ve ve özellikleri belirtilen değerlere OrElseLeftRight ayarlanmış özelliğine sahip NodeType bir.

Özel durumlar

left veya right şeklindedir null.

Bit düzeyinde OR işleç için lefttanımlanmamıştır. ve rightyazın. Türü.

-veya-

left. ve rightyazın. Tür aynı Boole türü değil.

Örnekler

Aşağıdaki kod örneği, ikinci işleneni değerlendiren mantıksal OR işlemi temsil eden bir ifadenin nasıl oluşturulacağını ancak ilk işlenenin değerlendirmesi durumunda nasıl oluşturulacağını falsegösterir.

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

// This expression perfroms a logical OR operation
// on its two arguments, but if the first argument is true,
// then the second arument is not evaluated.
// Both arguments must be of the boolean type.
Expression orElseExpr = Expression.OrElse(
    Expression.Constant(false),
    Expression.Constant(true)
);

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

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

// This code example produces the following output:
//
// (False OrElse True)
// True
' Add the following directive to your file:
' Imports System.Linq.Expressions  

' This expression perfroms a logical OR operation
' on its two arguments, but if the first argument is true,
' the second arument is not evaluated.
' Both arguments must be of the Boolean type.
Dim orElseExpr As Expression = Expression.OrElse(
     Expression.Constant(False),
     Expression.Constant(True)
 )

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

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

' This code example produces the following output:
'
' (False OrElse True)
' True

Açıklamalar

Elde edilen BinaryExpressionMethod özelliği uygulayan yönteme ayarlanmıştır. Type özelliği düğümün türüne ayarlanır. Düğüm kaldırılırsa IsLifted ve IsLiftedToNull özellikleri her ikisi de trueolur. Aksi takdirde, bunlar olur false. Conversion özelliğidirnull.

Aşağıdaki bilgiler uygulama yöntemini, düğüm türünü ve bir düğümün kaldırılıp kaldırılmadığını açıklar.

Yöntem Uygulama

Aşağıdaki kurallar, işlem için uygulama yöntemini belirler:

  • Type veya right özelliği left bit düzeyinde OR işleci aşırı yükleyen kullanıcı tanımlı bir türü temsil ederse, MethodInfo bu yöntemi temsil eden uygulama yöntemidir.

    Not

    Koşullu OR işleç C# veya Visual Basic'te aşırı yüklenemez. Ancak, koşullu OR işleç bit düzeyinde OR işleç kullanılarak değerlendirilir. Bu nedenle, bit düzeyinde OR işlecin kullanıcı tanımlı aşırı yüklemesi bu düğüm türü için uygulayan yöntem olabilir.

  • Aksi takdirde, ise left. ve rightyazın. Tür Boole türleri, uygulayan yöntem ise şeklindedir null.

Düğüm Türü ve Yükseltilmiş ve Yükseltilmemiş Karşılaştırması

Uygulayan yöntem değilse null:

  • Ise left. ve rightyazın. Tür, uygulayan yöntemin ilgili bağımsız değişken türlerine atanabilir, düğüm kaldırılmaz. Düğümün türü, uygulayan yöntemin dönüş türüdür.

  • Aşağıdaki iki koşul karşılanırsa düğüm kaldırılır ve düğümün türü, uygulayan yöntemin dönüş türüne karşılık gelen null atanabilir türdür:

    • left. ve rightyazın. Tür, her ikisi de en az birinin null atanabilir olduğu değer türleridir ve karşılık gelen null atanamaz türler, uygulayan yöntemin karşılık gelen bağımsız değişken türlerine eşittir.

    • Uygulayan yöntemin dönüş türü null atanamaz bir değer türüdür.

Uygulayan yöntem ise null:

  • left. ve rightyazın. Tür aynı Boole türündedir.

  • Ise left. ve rightyazın. Tür null atanamaz, düğüm kaldırılmaz. Düğümün türü, önceden tanımlanmış koşullu OR işlecin sonuç türüdür.

  • Ise left. ve rightyazın. Tür null atanabilir, düğüm kaldırılır. Düğümün türü, önceden tanımlanmış koşullu OR işlecin sonuç türüne karşılık gelen null atanabilir türdür.

Şunlara uygulanır

OrElse(Expression, Expression, MethodInfo)

Kaynak:
BinaryExpression.cs
Kaynak:
BinaryExpression.cs
Kaynak:
BinaryExpression.cs

yalnızca ilk işlenen olarak değerlendirilirse ikinci işleneni değerlendiren falsebir koşullu OR işlemi temsil eden bir BinaryExpression oluşturur.

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

Parametreler

left
Expression

Özelliğinin Left değerine eşit olarak ayarlanması için birExpression.

right
Expression

Özelliğinin Right değerine eşit olarak ayarlanması için birExpression.

method
MethodInfo

Özelliğini eşittir Method olarak ayarlamak için AMethodInfo.

Döndürülenler

BinaryExpression ve , MethodRightve Leftözellikleri belirtilen değerlere OrElse ayarlanmış özelliğine sahip NodeType bir.

Özel durumlar

left veya right şeklindedir null.

method değil null ve temsil ettiği yöntem döndürür void, değil static (Shared Visual Basic'te) veya tam olarak iki bağımsız değişken almaz.

method is null ve bit tabanlı OR işleç için lefttanımlanmamıştır. ve rightyazın. Türü.

-veya-

methodve leftşeklindedirnull. ve rightyazın. Tür aynı Boole türü değil.

Açıklamalar

Elde edilen BinaryExpressionMethod özelliği uygulayan yönteme ayarlanmıştır. Type özelliği düğümün türüne ayarlanır. Düğüm kaldırılırsa IsLifted ve IsLiftedToNull özellikleri her ikisi de trueolur. Aksi takdirde, bunlar olur false. Conversion özelliğidirnull.

Aşağıdaki bilgiler uygulama yöntemini, düğüm türünü ve bir düğümün kaldırılıp kaldırılmadığını açıklar.

Yöntem Uygulama

Aşağıdaki kurallar, işlem için uygulama yöntemini belirler:

  • değilse methodnull ve iki bağımsız değişken alan void static olmayan bir yöntemi (Shared Visual Basic'te) temsil ediyorsa, düğüm için uygulayan yöntemdir.

  • Aksi takdirde, Type veya right özelliği left bit düzeyinde OR işleci aşırı yükleyen kullanıcı tanımlı bir türü temsil ederse, MethodInfo bu yöntemi temsil eden uygulama yöntemidir.

    Not

    Koşullu OR işleç C# veya Visual Basic'te aşırı yüklenemez. Ancak, koşullu OR işleç bit düzeyinde OR işleç kullanılarak değerlendirilir. Bu nedenle, bit düzeyinde OR işlecin kullanıcı tanımlı aşırı yüklemesi bu düğüm türü için uygulayan yöntem olabilir.

  • Aksi takdirde, ise left. ve rightyazın. Tür Boole türleri, uygulayan yöntem ise şeklindedir null.

Düğüm Türü ve Yükseltilmiş ve Yükseltilmemiş Karşılaştırması

Uygulayan yöntem değilse null:

  • Ise left. ve rightyazın. Tür, uygulayan yöntemin ilgili bağımsız değişken türlerine atanabilir, düğüm kaldırılmaz. Düğümün türü, uygulayan yöntemin dönüş türüdür.

  • Aşağıdaki iki koşul karşılanırsa düğüm kaldırılır ve düğümün türü, uygulayan yöntemin dönüş türüne karşılık gelen null atanabilir türdür:

    • left. ve rightyazın. Tür, her ikisi de en az birinin null atanabilir olduğu değer türleridir ve karşılık gelen null atanamaz türler, uygulayan yöntemin karşılık gelen bağımsız değişken türlerine eşittir.

    • Uygulayan yöntemin dönüş türü null atanamaz bir değer türüdür.

Uygulayan yöntem ise null:

  • left. ve rightyazın. Tür aynı Boole türündedir.

  • Ise left. ve rightyazın. Tür null atanamaz, düğüm kaldırılmaz. Düğümün türü, önceden tanımlanmış koşullu OR işlecin sonuç türüdür.

  • Ise left. ve rightyazın. Tür null atanabilir, düğüm kaldırılır. Düğümün türü, önceden tanımlanmış koşullu OR işlecin sonuç türüne karşılık gelen null atanabilir türdür.

Şunlara uygulanır