编译器错误 CS0446

更新:2007 年 11 月

错误消息

Foreach 不能在“方法或委托”上运行。您是要调用“方法或委托”吗?

指定一个没有括号的方法或指定一个在 foreach 语句部分(通常放入集合类)没有括号的匿名方法会导致此错误。请注意,如果方法返回一个集合类,则将该方法调用放在那个位置是有效的,尽管这不常见。

示例

下面的代码将生成 CS0446。

// CS0446.cs
using System;
class Tester 
{
    static void Main() 
    {
        int[] intArray = new int[5];
        foreach (int i in M) { } // CS0446
    }
    static void M() { }
}