gpt4 book ai didi

c# - Expression.Variable() 和 Expression.Parameter() 有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 08:43:28 28 4
gpt4 key购买 nike

两者似乎都返回相同的类型,并且具有相同的签名。

那么它们之间有什么区别,我们应该在什么时候使用它们?

最佳答案

Expression.Variable 用于在 block 中声明局部变量。 Expression.Parameter 用于声明传入值的参数。

目前 C# 不允许使用语句主体的 lambda 表达式,但如果它允许,想象一下:

// Not currently valid, admittedly...
Expression<Func<int, int>> foo = x =>
{
int y = DateTime.Now.Hour;
return x + y;
};

如果此有效,C# 编译器将使用 Expression.ParameterxExpression.Variable< 生成代码y

至少,这是我的理解。很遗憾这两种方法的文档基本相同:(

关于c# - Expression.Variable() 和 Expression.Parameter() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32284043/

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