c# - 如何使用表达式检查 !=null 针对用户定义的数据类型?

标签 c# lambda expression-trees

我是表达式的新手。我正在尝试这个,但它似乎不起作用。

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 常量。

关于c# - 如何使用表达式检查 !=null 针对用户定义的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35187032/

相关文章:

python - Pandas map lambda 函数的不区分大小写的字典

c# - 如何扩展谓词以外的调用表达式?

c# - 使用 C# 创建计划任务(任务计划程序托管包装器)

c# - 如何设置 SortedDictionary 的初始容量?

python - Pony ORM - 按特定顺序排序

c# - 转换为 lambda 表达式

c# - 使用 C# 从现有模板创建 Word 文档

c# - 如何在 Avalonia MVVM 应用程序中使用 InputGesture 实现 MenuItem?

c# - 如何从字符串创建属性(集合)表达式选择器?

c# - 出现错误 : The binary operator Equal is not defined for the types 'System.Guid' and 'System.String'