[英]How to use Expressions to check for !=null against user-defined data types?
我是表達的新手。 我正在嘗試這個,它似乎沒有用。
ParameterExpression pe = Expression.Parameter(typeof(Customer));
Expression left = Expression.Property(pe, "OrderList");
Expression right = Expression.Constant(null, typeof(Nullable));
Expression res = Expression.NotEqual(left, right);
我得到一個“InvalidOperationException”。 簡單的If-Else語句看起來像這樣
if(custObj.OrderList != null)
{...}
任何幫助都會很棒。
簡單地使用
Expression right = Expression.Constant(null, left.Type);
它將為您提供與左操作數相同類型的null
常量(在您的情況下為property)。
問題是您正在比較不同類型的對象。 你可以通過使用Expression.Constant(object value)
重載來解決這個問題,我假設屬性OrderList
的類型是通過引用,如果不是你不能做這個比較。
ParameterExpression pe = Expression.Parameter(typeof(Customer));
Expression left = Expression.Property(pe, "OrderList");
Expression right = Expression.Constant(null);
Expression res = Expression.NotEqual(left, right);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.