มาพูดถึง delegate กันครับวันนี้ .....
posted on 02 Dec 2007 12:05 by pommatt in CSharpพูดกันแบบชาวบ้านเลยนะ มันก็คือตัวแปรที่ชี้ไปยังที่อยู่ของ function หรือ method นั้นเอง
แต่เราจะต้องบอกคุณสมบัติของ delegate เสียก่อนครับ
คุณสมบัติก็คือ ตัว return type และ parameter list ของ function ที่ delegateจะไปชื้นั้นเองมาดูการประกาศกันเลย
delegate ret-type name(parameter-list);
เช่น
public delegate void FunctionToCall();
สังเกต return type เราไม่มีครับ เลยเป็น void ส่วน parameter ของ function เราก็ไม่มี เลยไม่ต้องประกาศอะไร
delegate ตัวนความหมายว่า มันสามารถที่จะชี้ไปที่ function ไหนก็ได้ที่ มี return type เป็น void 1และ ไม่มี parameter ครับ
ดูตัวอย่างกัน:
using System;
delegate void FunctionToCall();
class MyClass
{
public void nonStaticMethod()
{
Console.WriteLine("nonStaticMethod");
}
public static void staticMethod(
{
Console.WriteLine("staticMethod");
}
}
class MainClass
{
static void Main()
{
MyClass t = new MyClass();
/******* ประกาศตัวแปร delegate *******************/
FunctionToCall functionDelegate;
/*******บอก functionที่จะใช้งาน ********************/
functionDelegate = t.nonStaticMethod;
functionDelegate(); // ทำการสั้งให้ทำ function นั้นๆ
}
}
ผลการทำงาน: >> nonStaticMethod
จบแล้ว
>edit @ 2 Dec 2007 23:02:42 by Pom & Ja
edit @ 5 Dec 2007 23:24:13 by Pom & Ja