簡體   English   中英

如何使用表達式檢查!= null對用戶定義的數據類型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM