บทที่ 6 ตอน 2 รันโปรแกรมจะแสดงบนกล่องข้อความ 2 หน้าต่างตามลำดับ

(5)  การรันโปรแกรมจะแสดงบนกล่องข้อความ 2 หน้าต่างตามลำดับ  ดังภาพ





1.  การโอเวอร์ไหลดเมธอด (Overloads Method)  
คือ การที่มีเมธอดในคลาสชื่อซ้ำกัน แต่รายการพารามิเตอร์หรือการส่งค่ากลับจะต้องแตกต่างกัน เช่น จำนวนพารามิเตอร์ที่ไม่เท่ากัน   ชนิดข้อมูลของพารามิเตอร์ที่ต่างกัน ชนิดการส่งค่ากลับต่างกัน การกระทำนี้จะทำให้ออบเจ็กต์มีชื่อเมธอดเหมือนกันแต่ความสามารถแตกต่างกันได้   เช่น


ในตัวอย่างที่จะกล่าวต่อไปนี้จะเป็นเมธอดการเพิ่มรายการเพลงโดยจะมีชื่อเมธอดซ้ำกัน 3 กรณีคือ แสดงรายการเพลงบน MessageBox   ComboBox และ ListBox
  
(1) ออกแบบหน้าจอพร้อมตั้งชื่อ ดังภาพ


(2)  สร้างคลาสที่ชื่อว่า clsMusic.vb จากนั้นเขียนโค้ดเพื่อสร้างเมธอดดังต่อไปนี้

|1|  Public Class clsMusic
|2|      Public Overloads Sub addMusic()
|3|          Dim s As String = ""
|4|          s += "รักเธอหมดหัวใจ" + vbCrLf
|5|          s += "หลักฐานบนใบหน้า" + vbCrLf
|6|          MsgBox(s)
|7|      End Sub
|8|      '---------------------------------
|9|      Public Overloads Sub addMusic(prmObject As ListBox)
|10|         With prmObject
|11|             .Items.Add("รักเธอหมดหัวใจ")
|12|             .Items.Add("หลักฐานบนใบหน้า")
|13|         End With
|14|     End Sub
|15|     '---------------------------------
|16|     Public Overloads Sub addMusic(prmObject As ComboBox)
|17|         With prmObject
|18|             .Items.Add("รักเธอหมดหัวใจ")
|19|             .Items.Add("หลักฐานบนใบหน้า")
|20|         End With
|21|     End Sub
|22|  End Class

(3)  กลับไปที่ฟอร์มแล้วสร้างออบเจ็กต์เพื่อเรียกเมธอดแบบโอเวอร์โหลด จากนั้นเขียนโค้ดให้เสร็จดังนี้

ในบรรทัดที่ 4  ขณะที่เปิดวงเล็บสังเกตจะมีแถบตัวช่วยสีเหลืองขึ้นมา ซึ่งสามารถเลือกสามเหลี่ยมชี้ขึ้นหรือชี้ลง เพื่อเลือกรายการเมธอดแบบโอเวอร์โหลด 


(4)  เมื่อรันโปรแกรมในขณะที่ฟอร์มโหลดจากโค้ดจะมีการกระทำ 3 อย่างคือ
          บรรทัดที่ 4 จะเพิ่มรายการเพลงลงใน Combobox1
          บรรทัดที่ 5 จะเพิ่มรายการเพลงลงใน Listbox1
บรรทัดที่ 6 จะแสดงรายการเพลงที่กล่องข้อความ (Messagebox)





ความคิดเห็น

  1. ไม่ระบุชื่อ3 กรกฎาคม 2559 เวลา 18:37

    ทั้ง sub statement และ ฟังชั่น สามารถใช้การ overloads กับ overrides ได้ ทั้งคู่ใช้มั้ยครับ
    หรือการ overrides ใช้กับฟังชั้น
    overloads ใช้กับ sub statement

    ตอบลบ
  2. ไม่ระบุชื่อ3 กรกฎาคม 2559 เวลา 18:47

    หรือการ overrides เป็นการเขียนทับ method ชื่อเดียวกับคลาสแม่ในคลาสลูก
    ส่วน overloads เป็นการทำให้ method ในคลาสนั้นสามารถรับตัวแปรเข้ามาในพารามิเตอร์ได้หลายชนิดในชื่อ method เดียวกันแล้วยังสามารถส่งกลับการกระทำที่ต่างกันตามชนิดของตัวแปรที่รับมาใช่ไหมครับ

    ตอบลบ

แสดงความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

บทที่ 11 ตอน 3 การออกแบบรายงานด้วย Crystal Report

บทที่ 6 กระบวนการพอลิมอร์ฟิซึม (Polymorphism)

บทที่ 11 ตอน 3 การออกแบบรายงานด้วย Crystal Report Ex2