レッツは、私が学生のクラスデリゲートは、私は2つの質問を持っている方法
class Program
{
delegate bool del2(Student s); //I have to put this delegate before Main?
static void Main(string[] args)
{
List<Student> listStudent = new List<Student>()
{
... //adding student instances...
};
//delegate bool del2(Student s); Q1: why compile error if I put it here?
Predicate<Student> del1 = check;
Student s = listStudent.Find(del1);
Console.WriteLine("s is" + s.Name);
}
public static bool check(Student s) //Q2:why it need to be static method?
{
return s.Name == "Michael";
}
}
を持っていると言うの主の前である必要があります:
なぜ私がメインメソッドの前にDEL2置く必要がありますか? del1は述語デリゲートです。メインメソッドの中に置くこともできます。また、del2もデリゲートです。なぜ、メインメソッド内にも置くことができないのですか?
なぜチェックメソッドは静的でなければならないのですか?
それは型宣言です:あなたはこれを行うことができます。構造体宣言やクラス宣言のように。 C#の構文では、型宣言はメソッド本体の中には現れません。 Main()メソッドを*後に移動すると、内部だけでなく、うまくいきます。 –