TryExpression Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Try/catch/finally/fault bloğunu temsil eder.
public ref class TryExpression sealed : System::Linq::Expressions::Expression
public sealed class TryExpression : System.Linq.Expressions.Expression
type TryExpression = class
inherit Expression
Public NotInheritable Class TryExpression
Inherits Expression
- Devralma
Örnekler
Aşağıdaki örnekte yöntemini kullanarak catch deyimi içeren bir TryExpression nesnenin nasıl oluşturulacağı gösterilmektedir TryCatch .
// Add the following directive to the file:
// using System.Linq.Expressions;
// A TryExpression object that has a Catch statement.
// The return types of the Try block and all Catch blocks must be the same.
TryExpression tryCatchExpr =
Expression.TryCatch(
Expression.Block(
Expression.Throw(Expression.Constant(new DivideByZeroException())),
Expression.Constant("Try block")
),
Expression.Catch(
typeof(DivideByZeroException),
Expression.Constant("Catch block")
)
);
// The following statement first creates an expression tree,
// then compiles it, and then runs it.
// If the exception is caught,
// the result of the TryExpression is the last statement
// of the corresponding Catch statement.
Console.WriteLine(Expression.Lambda<Func<string>>(tryCatchExpr).Compile()());
// This code example produces the following output:
//
// Catch block
' Add the following directive to the file:
' Imports System.Linq.Expressions
' A TryExpression object that has a Catch statement.
' The return types of the Try block and all Catch blocks must be the same.
Dim tryCatchExpr As TryExpression =
Expression.TryCatch(
Expression.Block(
Expression.Throw(Expression.Constant(New DivideByZeroException())),
Expression.Constant("Try block")
),
Expression.Catch(
GetType(DivideByZeroException),
Expression.Constant("Catch block")
)
)
' The following statement first creates an expression tree,
' then compiles it, and then runs it.
' If the exception is caught,
' the result of the TryExpression is the last statement
' of the corresponding Catch statement.
Console.WriteLine(Expression.Lambda(Of Func(Of String))(tryCatchExpr).Compile()())
' This code example produces the following output:
'
' Catch block
Açıklamalar
Gövde bloğu try bloğu tarafından korunur.
İşleyiciler, catch deyimleri veya filtreler olabilecek bir CatchBlock dizi ifadeden oluşur.
Bir özel durum oluşursa hata bloğu çalışır.
Son blok, denetimin gövdeden nasıl çıktığına bakılmaksızın çalışır.
Yalnızca bir hata veya son blok sağlanabilir.
Try bloğunun dönüş türü, ilişkili catch deyimlerinin dönüş türüyle eşleşmelidir.
Özellikler
Body |
Expression Try bloğunun gövdesini temsil eden öğesini alır. |
CanReduce |
Düğümün daha basit bir düğüme indirgenebileceğini gösterir. Bu true döndürürse, azaltılmış formu oluşturmak için Reduce() çağrılabilir. (Devralındığı yer: Expression) |
Fault |
Hata bloğunu Expression temsil eden öğesini alır. |
Finally |
finally bloğunu Expression temsil eden öğesini alır. |
Handlers |
CatchBlock Try bloğuyla ilişkili ifade koleksiyonunu alır. |
NodeType |
Bu Expressionöğesinin düğüm türünü döndürür. |
Type |
Bunu Expression temsil eden ifadenin statik türünü alır. |
Yöntemler
Accept(ExpressionVisitor) |
Bu düğüm türü için belirli bir ziyaret yöntemine gönderilir. Örneğin, MethodCallExpression öğesini çağırır VisitMethodCall(MethodCallExpression). (Devralındığı yer: Expression) |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
Reduce() |
Bu düğümü daha basit bir ifadeye küçültür. CanReduce true döndürürse, bu geçerli bir ifade döndürmelidir. Bu yöntem, azaltılması gereken başka bir düğüm döndürebilir. (Devralındığı yer: Expression) |
ReduceAndCheck() |
Bu düğümü daha basit bir ifadeye küçültür. CanReduce true döndürürse, bu geçerli bir ifade döndürmelidir. Bu yöntem, azaltılması gereken başka bir düğüm döndürebilir. (Devralındığı yer: Expression) |
ReduceExtensions() |
İfadeyi bilinen bir düğüm türüne (Uzantı düğümü değil) küçültür veya zaten bilinen bir türse yalnızca ifadeyi döndürür. (Devralındığı yer: Expression) |
ToString() |
öğesinin metinsel gösterimini Expressiondöndürür. (Devralındığı yer: Expression) |
Update(Expression, IEnumerable<CatchBlock>, Expression, Expression) |
Bunun gibi, ancak sağlanan alt öğeleri kullanarak yeni bir ifade oluşturur. Tüm alt öğeler aynıysa bu ifadeyi döndürür. |
VisitChildren(ExpressionVisitor) |
Düğümü azaltır ve ardından azaltılmış ifadede ziyaretçi temsilcisini çağırır. Düğüm azaltılabilir değilse yöntemi bir özel durum oluşturur. (Devralındığı yer: Expression) |