Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi等效-C#表达式<;Func<;T、 对象>&燃气轮机;_C#_Delphi_Expression - Fatal编程技术网

Delphi等效-C#表达式<;Func<;T、 对象>&燃气轮机;

Delphi等效-C#表达式<;Func<;T、 对象>&燃气轮机;,c#,delphi,expression,C#,Delphi,Expression,Delphi Berlin是否支持C#之类的表达式树 表达式 我一直在找这个,但什么也没找到。我只找到了匿名函数,但没有找到表达式树 如何在Delphi中实现类似的功能 private string Select<T>(params Expression<Func<T, object>>[] expression) { return ... } 私有字符串选择(参数表达式[]表达式) { 返回。。。 } 例如: S

Delphi Berlin是否支持C#之类的表达式树

表达式
我一直在找这个,但什么也没找到。我只找到了匿名函数,但没有找到表达式树

如何在Delphi中实现类似的功能

    private string Select<T>(params Expression<Func<T, object>>[] expression)
    {
        return ...
    }
私有字符串选择(参数表达式[]表达式)
{
返回。。。
}
例如:

Select<Customer>(x=> x.Name, x=> x.Id, x=> x.Address)
Select(x=>x.Name,x=>x.Id,x=>x.Address)

主要目标是执行传递类属性的函数,以使用这些属性的名称创建字符串。

否,不是直接创建。我想这是可能的,也许有人已经用这种或那种方式实现了它。然后你就进入了推荐的领域,这是一个离题的问题。Delphi中没有lambda或类似lambda的语法(但是),这是肯定的。FWIW,params是Delphi的等效语法。没有。C#编译器了解
表达式
,并将其转换为表达式树。在德尔福没有办法做到这一点。有其他方法可以尽可能接近LINQ,但没有一种方法真正符合
表达式所能做到的,您可能想要这样的东西
Select<Customer>(x=> x.Name, x=> x.Id, x=> x.Address)