gpt4 book ai didi

c# - LambdaExpression 构造函数

转载 作者:行者123 更新时间:2023-11-30 13:55:54 26 4
gpt4 key购买 nike

我看到了如下代码。我的问题是:

1> ()=>Name这是什么意思?

2> 是 Expression<Func<>>Expression<TDelegate>相同? ()=>Name如何转换为 Expression<Func<>>使用哪个构造函数?大多数 Expression 类没有公共(public)构造函数。 C# 编译器如何将 Lambda 转换为 Expression?

3> Parse 函数的性能成本是多少?

public class Test
{
public string Name {get;set;}

public void Start()
{
Parse(()=>Name);
}

public string Parse<T>(Expression<Func<T>> exp)
{
var mexp = (System.Linq.Expressions.MemberExpression)expression.Body;
return mexp == null ? "" : mexp.Member.Name;
}
}

最佳答案

  1. 这是一个没有参数的 lambda,但结果是 String .
  2. 没有。 TDelegate是模板参数。 Func<T>是满足 TDelegate 的具体类型的约束。 C# 编译器会在编译时将 lambda 转换为适当的类型。
  3. 您应该测量才能回答这个问题。

关于c# - LambdaExpression 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com