代码之家  ›  专栏  ›  技术社区  ›  Rich

C#表达式树空值检查

  •  1
  • Rich  · 技术社区  · 6 年前

    我正在尝试编写一个表达式树来确定传入对象的属性值是否为null。当value.{property}不为null时,这段代码可以正常工作,但当它为null时,我得到一个NullReferenceException

    var valueAsType = Expression.Convert(value, type);            
    var property = Expression.Property(valueAsType, type, propertyInfo.Name);
    var isNotNullCondition = Expression.NotEqual(property, Expression.Constant(null, propertyInfo.PropertyType));
    

    条件的Debug视图似乎也有意义:

    ((ProperyValiationLambda.SetEmptyToNullTest)$value).Value != null
    
    0 回复  |  直到 6 年前