14; public void Draw() Console. WriteLine("Draw circle. ");} public double GetArea() return PI * (radius, 2);} public void Draw3D() Console. WriteLine("Draw sphere. ");} // formular: 4 * PI * (r ^ 2) public double GetSurfaceArea() return 4 * GetArea();}} class Square: iShape2D, iShape3D public double length; Console. WriteLine("Draw square. ");} return (length, 2);} Console. WriteLine("Draw cube. ");} // 6 sides surface area return 6* GetArea();}} Circle cir = new Circle(); = 5; Console. WriteLine("with area " + tArea() + " square inches"); cir. Draw3D(); Console. WriteLine("with surface area " + tSurfaceArea() + " square inches"); Square box = new Square(); = 4; box. Draw3D(); tSurfaceArea() + " square inches");}} ในตัวอย่าง เป็นโปรแกรมในการวาดรูปทรงในสองมิติและสามมิติและการคำนวณหาพื้นที่ผิวของวัตถุ เราได้สร้างสอง Interfaces คือ iShape2D เป็น Interfaces ที่กำหนดเมธอดเกี่ยวกับการทำงานในสองมิติ และ iShape3D เป็น Interfaces ที่กำหนดเมธอดเกี่ยวกับการทำงานในสามมิติ {... ต่อมาเราสร้างคลาส Circle และคลาส Square ซึ่งเป็นคลาสของวงกลมและสี่เหลี่ยมด้านเท่า โดยแต่ละคลาสได้มีการ Implement หลาย Interfaces โดยการคั่นด้วยเครื่องหมาย, หลังจากนั้นแต่ละคลาสได้กำหนดการทำงานให้แต่เมธอดของมันเอง Draw circle.
Interface เท่าที่ผมรู้คือ มันจะมีการประกาศชื่อ method ทิ้งไว้เฉยๆ ไม่มีการใส่รายละเอียด รอให้ class ต่างๆ มา Implement แต่ผมมาสะกิดใจตรง IEnumerator และ IEnumerable ใน C# นี่แหละคับ ทำไมจู่ๆ interface พวกนี้ มันถึงทำไงได้เองได้ โดยที่ไม่ต้องหา class อะไรมา implement ก่อน อย่างใน List list = new List() { 0, 2, 4, 6, 8}; IEnumerator iterator = tEnumerator(); while (eNext()) Console. WriteLine(rrent); วานผู้รู้ช่วยตอบกระผมด้วยนะคับ (- /|\ -) Get latest news from Blognone Follow @twitterapi