c#多行lambda表达式
本文关键字:表达式 lambda 多行 | 更新日期: 2023-09-27 18:03:54
我想打印一个(或多个)整数间隔的百分比值。下面的代码将object.ProgressChanged
描述为一个EventHandler<EventArgs>
,将maxPercent
描述为一个全局int
变量。
object.ProgressChanged += (sender, args) => (
if (maxPercent < ((int) args.ProgressPercentage)) {
maxPercent = (int) args.ProgressPercentage;
Console.WriteLine(maxPercent + "%");
}
)
我可以很容易地解决这个问题,这样做:
object.ProgressChanged += (sender, args) => aFunction(args);
其中aFunction
包含第一段代码中=>
运算符之后的所有相同代码。
我正在寻找一种更优雅的方法来处理这个问题,如果可能的话,用一行。任何建议吗?
object.ProgressChanged += (sender, args) => {
maxPercent = Math.Min(maxPercent, (int)args.ProgressPercentage);
};
正如Jeff指出的那样,您应该使用{ }
作为多行lambda