繁体   English   中英

无法从方法组转换为对象 - C#

[英]Cannot Convert from Method Group to Object - C#

我试图熟悉 C# 并尝试了以下程序 - 它只输出数组中偶数的平均值。

代码片段错误

如果有人可以在这里突出问题,那就太好了。

您需要select.Average() (带括号)。

Missing Parenthesis ()是你错误的原因。它应该是Average()

没有括号,理解为一个方法组。一般的方法可以有多个重载,不清楚需要调用哪个特定的重载方法。但是当你提到括号时,它使意图更清晰,方法被调用。

您不是在调用Average 应该是select.Average()

问题是,您忘记包含括号,因为Average是一种方法(扩展类型)。 另一种解决方案是使用 lambda 表达式,像这样,

var numbers = new[] { 1, 2, 3, 4, 5 };
Console.WriteLine(numbers.Where(x => (x % 2) == 0).Average());

或者

var numbers = new[] { 1, 2, 3, 4, 5 };
var select = (from num in numbers where (num % 2) == 0 select num).Average();
Console.WriteLine(select);

这是一个扩展Method所以它应该是这样的: Average()

与(括号())

这对我来说是一个粗心的错误,我试图像属性一样调用 Method 而不是像方法一样调用 Method()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM