请参阅下面的第二位代码..代码无法编译。我试图找出anon方法,我明白了..
但不是没有使用我在网上发现的匿名方法的例子,而这些方法没有编译
使用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);
}
}
}
答案 0 :(得分:6)
public static bool IsEven(int integer)
{
return (integer % 2 == 0);
}
Main是静态的,因此IsEven也必须是静态的。