【发布时间】:2021-03-24 20:58:51
【问题描述】:
在 C# 8 中我有以下方法:
public Result Verify(IEnumerable<Decimal> values) {
// Do something with values
}
和类:
public class Point {
public Decimal Maximum { get; set; }
public Decimal Minimum { get; set; }
}
我使用它如下:
IEnumerable<Point> points = getDataPoints();
Result result = Verify(points.Select(x => x.Maximum).ToList());
如何创建一个类似的Verify 方法,我可以用作:
IEnumerable<Point> points = getDataPoints();
Result result = Verify(points => points.Maximum);
我将传递点并定义哪个属性保存要在方法验证中使用的值
【问题讨论】:
-
您给出的示例代码没有传递
points...它只传递一个lambda表达式。不过,写一些东西来让你拥有Verify(points, x => x.Maximum)是相当容易的。 -
好久没写c#代码了。但是,我记得当我想做一些你想要的魔法时,我曾经使用Reflection
-
@JonSkeet 刚刚更正
-
为什么叫
Verify,什么是Result类型? -
你根本没有纠正我所指出的......