我怎样才能以表达式的方式描述这样的方法体?
void SomeMethod() =>
foreach(int value in ListOfInt)
collect += count;
答案 0 :(得分:1)
顾名思义,这首先是表达式。表达式计算为值,而SomeMethod
则不计算。你可以说它确实返回void
并且它在C#中有效。重点是表达体方法使您的代码更具可读性。如果没有,请不要使用它。
不是直接转换为表达式主体方法,而是简化当前代码更有意义。只给出一段有问题的代码,可以写成
collect += ListOfInt.Count() * count;
如果count是根据值计算的,那么它可以是
collect += ListOfInt.Select( value => ...calculate count ...).Sum();
或利用Enumerable.Aggregate来处理复杂逻辑。
诀窍是将foreach
语句转换为表达式。然后将整个方法转换为表达式更容易。
答案 1 :(得分:0)
您可以将ForEach方法用作表达式主体。现在你的表达式看起来像这样:
void SomeMethod() => ListOfInt.ForEach(value => {collect+=count;});
答案 2 :(得分:0)
最简单的解决方案是不使用表达体功能,例如
void SomeMethod()
{
foreach(int value in ListOfInt)
collect += count;
}