บทที่ 2 ตอน 3 การเขียนโปรแกรมเพื่อทดสอบการส่งผ่านค่าแบบ Pass by Reference

ตัวอย่างที่ 2 เป็นการเขียนโปรแกรมเพื่อทดสอบการส่งผ่านค่าแบบ Pass by Reference
(1)   ให้ทดลองแก้ไขโปรแกรมในตัวอย่างของ Pass by Value ที่ผ่านมา
          (2)  ในบรรทัดที่ 6 ให้แก้ไขคำสั่งจากคำว่า
ByVal เป็นคำสั่ง ByRef แทน
|1|     Public Class Form1
|2|         Private Sub Button1_Click() Handles Button1.Click
|3|             Hello(TextBox1.Text)
|4|         End Sub
|5|         '------------------------------------------
|6|         Sub Hello(ByRef prmName As String)
|7|             prmName = "ยินดีต้อนรับคุณ:" & prmName & "เข้าสู่มหาวิทยาลัยราชภัฏเลย"
|8|             MsgBox(prmName)
|9|         End Sub
|10|    End Class

(3)  เมื่อแก้ไขโค้ดเสร็จแล้วให้กดปุ่ม F5 เพื่อรันโปรแกรมและป้อนค่าข้อมูลชื่อลงในช่อง TextBox ดังภาพจากนั้นกดปุ่ม Pass by จะพบกล่องข้อความต้อนรับ
(4)  โปรดสังเกตการเปลี่ยนแปลงข้อความใน TextBox หากค่าตัวแปรพารามิเตอร์มีการเปลี่ยนแปลง ตัวแปรหรือตัวควบคุมที่ส่งค่า ผ่านตัวแปรอาร์กิวเมนต์ก็จะมีการเปลี่ยนแปลงค่าตามไปด้วยดังภาพ ซึ่งจะเป็นผลมาจากการเปลี่ยนแปลงคำสั่งกำกับการส่งผ่านค่าจาก ByVal เป็น RyRef
การหลุดออกจากการทำงานของเมธอด
          โดยปกติแล้วเมธอดจะมีการทำงานตามขั้นตอนและสิ้นสุดที่คำสั่ง End Function หรือ End Sub แต่เราสามารถเขียนโค้ดคำสั่งเพื่อให้ออกจากการทำงานของเมธอดได้โดยการเขียนโปรแกรมดังนี้
          1.  การใช้คำสั่ง Return เพื่อให้ส่งค่ากลับ ซึ่งหากการทำงานของเมธอด พบกับคำสั่ง Return ถึงแม้คำสั่ง Return จะอยู่ในบรรทัดใดก็ตาม เมธอดนั้นจะถือว่าการทำงานของเมธอดได้สิ้นสุดเมื่อมีการส่งค่ากลับแล้วดังนั้ การทำงานจะออกจากฟังก์ชั่นทันที (ส่งค่ากลับทันที)

|1|         Function testReturn() As String
|2|             MsgBox("456")
|3|             MsgBox("789")
|4|             Return "123"
|5|         End Function

จากเมธอด TestReturn() เมื่อมีการเรียกใช้เมธอดนี้ ก่อนการส่งค่ากลับจะแสดงบนกล่องข้อความจำนวน 2 ครั้งโดยจะแสดงค่า 456 และ 789  โดยในบรรทัดที่ 4 จะมีการส่งค่ากลับ คือค่า 123

|1|         Function testReturn2() As String
|2|             Return "123"
|3|             MsgBox("456")
|4|             MsgBox("789")
|5|         End Function
จากเมธอด TestReturn2 อาจจะเข้าใจว่าจะมีการส่งค่ากลับ คือ 123 และมีกล่องข้อความจะแสดง 456 และ 789 ออกมาจำนน 2 ครั้ง แต่ปรากฏว่าเมื่อระบบมีการรันโปรแกรมมาพบกับบรรทัดที่ 2 คือการส่งค่ากลับระบบจะถือว่าการทำงานสิ้นสุดแล้วโดยที่ไม่แสดงกล่องข้อความ
2.  การบังคับให้ออกจากโปรแกรมย่อย ด้วยคำสั่ง Exit ถ้าหากการทำงานของระบบไปพบกับคำสั่ง Exit นี้อยู่บรรทัดใดก็ตาม จะออกจากโปรแกรมย่อยทันที โดยทั่วไปแล้วฟังก์ชั่นจะใช้คำสั่ง Exit Function และซับรูทีนจะใช้คำสั่ง Exit Sub ดังโค้ด



ความคิดเห็น

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

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

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

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