gpt4 book ai didi

c# - 是否可以检查一个简单的表达式是否总是返回 true?

转载 作者:行者123 更新时间:2023-11-30 19:34:10 25 4
gpt4 key购买 nike

我的意思是用最简单的方式。假设您有一个具有以下签名的函数:

public static Expression<Func<T, bool>> CreateExpression<T>(string value)
{
// ...
}

通常它会创建某种更复杂的表达式,但如果 valuenull,则该方法应返回常量,始终为真表达式。换句话说:

public static Expression<Func<T, bool>> CreateExpression<T>(string value)
{
if(value == null)
return x => true;

// ...
}

我可以为其创建单元测试吗?当我将 null 作为值发送时,我确实得到了一个常量 true 表达式?

最佳答案

准确地测试那个表达式会很容易(正文将是一个ConstantExpression,值为true)。但是在一般情况下呢?不 - 太复杂了。

static bool IsConstantTrue(LambdaExpression lambda)
{
return lambda.Body.NodeType == ExpressionType.Constant
&& true.Equals(((ConstantExpression)lambda.Body).Value);
}

Expression<Func<SomeType, bool>> exp = x => true; // or some method that 
// returns a lambda expression
Assert.IsTrue(IsConstantTrue(exp));

关于c# - 是否可以检查一个简单的表达式是否总是返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2049089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com