繁体   English   中英

在C#2.0中是否有等效于Expression.Parameter的内容

[英]Is there an equivalent to Expression.Parameter in C# 2.0

我问是因为我试图支持某些东西,以便与使用C#2.0的unity一起使用。 例如我有这样一条线:

var patternSymbol = Expression.Parameter(typeof (T));

因此,我可以代替我自己的一些代码来完成这项工作吗? 注意:我可以根据自己的喜好更改内容,但是离原始代码越远,我可能会从事的工作越多。 本质上,我需要在C#2.0中复制Expression / Parameter行为(从C#3.0?)。

(我是C#的新手,发现很难找到像这样的历史问题的答案)。

由于缺少整个LINQ子系统,因此无法将该代码回传到.NET 2.0。 System.Linq.Expressions.Expression类已作为C#3.5的LINQ的一部分引入,这是.NET框架的一大进步。

特别是, Expression.Parameter本身并不是全部有用。 通常,您会发现Expression.LambdaCompile在代码中进一步调用,然后强制转换为Func<...> 模仿这些调用将需要生成CLR代码,这几乎就像编写自己的编译器一样。 但是,很少值得付出努力。

您需要了解如何使用旧代码,并从头开始构建替换代码。 例如,您可以用已解释的表达式替换已编译的表达式,这很容易构建(以较低的运行时性能为代价)。 无论如何,您最终都将编写一个全新的子系统,而不仅仅是移植代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM