我在这里有一个有趣的案例。我有一个方法调用
bool pass= Check.CheckNotNull<RemoveRoleFromUserCommand>(x => x.RoleName, x => x.UserId);
现在我想把这个方法定义为这样......
public static void CheckNotNull<T>(params Expression<Func<T, object>>[] @params)
{
return @params.All(x=> ..... );
}
如何检查@params
委托中我已通过的所有值的所有值。
答案 0 :(得分:3)
好吧,如果要调用委托,则需要T
的实例。所以添加它作为参数。
public static bool CheckNotNull<T>(T item, params Func<T, object>[] @params)
{
return @params.All(selector => selector(item) != null );
}
回应评论:
public static bool CheckNotNull<T>(T item, params Func<T, object>[] @params)
{
return @params.All(selector =>
{
var selected = selector(item);
return selected is string? string.IsNullOrEmpty(selected as string) : selected != null;
} );
}