你可以
MethodInfo
三个参数中的
string.Compare
方法如下:
private static readonly MethodInfo StringComparisonExpressionMethodInfo =
typeof(string).GetMethod("Compare", new Type[] {
typeof(string), typeof(string), typeof(StringComparison)
});
用这个
MethodInfo方法信息
您可以使用第三个参数调用该方法:
var ignoreCase = Expression.Constant(StringComparison.CurrentCultureIgnoreCase);
return Expression.AndAlso(
Expression.GreaterThanOrEqual(Expression.Call(StringComparisonExpressionMethodInfo, value, lowerBound, ignoreCase), zeroExpr),
Expression.LessThanOrEqual(Expression.Call(StringComparisonExpressionMethodInfo, value, upperBound, ignoreCase), zeroExpr)
);
由于要为第三个参数传递一个常量,请
ignoreCase
和你做的一样的常量表达式
zeroExpr
.