English 中文(简体)
动态创建 func- Lambdas 与 表达式树
原标题:Creating a Func<> dynamically - Lambdas vs. Expression trees

在此为返回线性函数( y=ax+b) 的代码 。

public static Func<double, double> LinearFunc(double slope, double offset)
{
    return d => d * slope + offset;
}

我可以做同样的事情 表达的树, 但我不确定它是否值得努力。

我知道羊羔会捕捉参数,而参数是负面的。 还有什么我不知道的呢?

我的主要问题是,在这种情况下使用表达式树是否值得?为什么或为什么不?

最佳回答

如果您在编译时知道代码, 我几乎肯定会使用羊羔表达式。 捕捉参数( 而不是以常数表示) 几乎总是无关紧要的- 为了证明建造表达式树的正当性, 您必须证明它很重要 。

表达式树在下列情况下更加适用:

  • You want to build them dynamically from different bits of expressions
  • You want to analyze the expression tree as data, e.g. as a LINQ provider

如果不是这种情况,使用羊羔的表达方式的可读性好处是巨大的。

问题回答

暂无回答




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签