1 回答
TA贡献1829条经验 获得超6个赞
我的问题是:为什么会发生这种情况?
发生这种情况是因为DynamicExpression
使用了自定义构建的表达式解析器。它被制作成类似于 C#,但它不是 C#。并非所有在 C# 中有效的东西都能正常工作,而且在 C# 中有效的一些东西的工作方式也不同。
解决双 * 十进制问题的最佳方案是什么?通过(十进制)5.7 转换我知道是十进制的值还是使用 Convert.ToDecimal(5.7)?
投射,但不使用这种语法。使用的语法是type(expr)
,不是(type)expr
,见下文。
parse() 到底知道多少?(我没有在 msdn 等上找到文档)
原始文档的副本似乎可在http://ak-dynamic-linq.azurewebsites.net/GettingStarted 获得。我尚未验证整个文档是否未经修改,但我已将以下内容与原始文档进行了比较。
去引用:
表达式语言允许使用语法显式转换
type(expr)
或type"string"
,其中类型是类型名称任选地接着?
与EXPR是一个表达式或串是字符串文字。此语法可用于执行以下转换:
提供的两种类型之间
Type.IsAssignableFrom
在一个或两个方向上都是正确的。在提供的两种类型之间,一种或两种是接口类型。
介于任何值类型的可空和不可空形式之间。
在字符串和任何具有静态 TryParse 方法的类型之间。
属于包括以下各项的集合中的任何两种类型之间
SByte
,Byte
,Int16
,UInt16
,Int32
,UInt32
,Int64
,UInt64
,Decimal
,Single
,Double
,Char
,任何枚举类型,以及所述可空这些类型的形式。
- 1 回答
- 0 关注
- 186 浏览
添加回答
举报