We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

Compiler Error CS0446

Foreach cannot operate on a 'Method or Delegate'. Did you intend to invoke the 'Method or Delegate'?

This error is caused by specifying a method without parentheses or an anonymous method without parentheses in the part of the foreach statement where you would normally put a collection class. Note that it is valid, though unusual, to put a method call in that location, if the method returns a collection class.

The following code will generate CS0446.

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