系列文章: C# 表达式树及其应用 (Expression 类)
本节继续讲解Expression相关的API, 力争把相关api 都使用简短demo说明一下
- DebugInfo 创建一个具有指定跨度的 DebugInfoExpression。//TODO
Decrement 创建一个 UnaryExpression,它表示按 1 递减表达式值。
//Decrement 创建一个 UnaryExpression,它表示按 1 递减表达式值。
void DecrementSample()
{
double num = 5.5;
Expression decrementExpr = Expression.Decrement(Expression.Constant(num));
decrementExpr.ToString().Dump();//Decrement(5.5)
Expression.Lambda<Func<double>>(decrementExpr).Compile()().Dump();//4.5
}
DecrementSample();
- Default(Type) 创建一个 DefaultExpression,Type 属性设置为指定类型。
//Default(Type) 创建一个 DefaultExpression,Type 属性设置为指定类型。
void DefaultSample()
{
Expression defaultExpr = Expression.Default(typeof(byte));
defaultExpr.ToString().Dump();//default(Byte)
Expression.Lambda<Func<byte>>(defaultExpr).Compile()().Dump();//0
}
DefaultSample();
- Divide 创建一个表示算术除法运算的 BinaryExpression。
//Divide 创建一个表示算术除法运算的 BinaryExpression。
void DivideSample()
{
Expression divideExpr = Expression.Divide(Expression.Constant(10.0), Expression.Constant(4.0));
divideExpr.ToString().Dump();//(10 / 4)
Expression.Lambda<Func<double>>(divideExpr).Compile()().Dump();//2.5
}
DivideSample();
//DivideAssign (类似与Divide) 创建一个表示不进行溢出检查的除法赋值运算的 BinaryExpression。
//Dynamic 创建一个表示动态操作的 DynamicExpression。 //TODO
本文作者:wwmin
微信公众号: DotNet技术说
本文链接:https://www.jianshu.com/p/3723d3ab8473
关于博主:评论和私信会在第一时间回复。或者[直接私信]我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,关注点赞, 您的鼓励是博主的最大动力!
网友评论