2009-07-27 101 views
0

查看下面代码的第二位..代码不能编译。我试图找出匿名方法,我得到它..C#中的简单匿名方法

但并不是没有使用我网,它不编译

使用VS2008 ..编译到上找到匿名方法的例子。 NET3.5

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace TestAnonymousMethods 
{ 
    public class Program 
    { 
     // using an anon method 
     static void Mainx(string[] args) 
     { 
      int[] _integers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 

      int[] evenIntegers = Array.FindAll(_integers, 
             // this is the anonymous method below 
             delegate(int integer) 
             { 
              return (integer % 2 == 0); 
             } 
       ); 

      foreach (int integer in _integers) 
       Console.WriteLine(integer); 

      foreach (int integer in evenIntegers) 
       Console.WriteLine(integer); 
     } 

     // not using anon method 
     static void Main(string[] args) 
     { 
      int[] _integers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 

      int[] evenIntegers = Array.FindAll(_integers, IsEven); // **Compile error here** 

      foreach (int integer in _integers) 
       Console.WriteLine(integer); 

      foreach (int integer in evenIntegers) 
       Console.WriteLine(integer); 
     } 

     public bool IsEven(int integer) 
     { 
      return (integer % 2 == 0); 
     } 


    } 
} 
+3

为了将来的参考,如果包含错误信息和您的问题,它可以帮助人们获得更多的编译时错误。它通常包含有用的信息,可以节省人们梳理你的代码 – 2009-07-27 05:05:31

回答

6
public static bool IsEven(int integer) 
{ 
    return (integer % 2 == 0); 
} 

主要是静态的,所以ISEVEN必须是静态的了。

+0

......很多感谢pb。 – 2009-07-27 05:02:39