บทที่ 2 ตอน 3 การเขียนโปรแกรมเพื่อทดสอบการส่งผ่านค่าแบบ Pass by Reference
ตัวอย่างที่
2 เป็นการเขียนโปรแกรมเพื่อทดสอบการส่งผ่านค่าแบบ Pass by
Reference
(1) ให้ทดลองแก้ไขโปรแกรมในตัวอย่างของ Pass
by Value ที่ผ่านมา
(2) ในบรรทัดที่ 6 ให้แก้ไขคำสั่งจากคำว่า ByVal เป็นคำสั่ง ByRef แทน
(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 ดังโค้ด
ความคิดเห็น
แสดงความคิดเห็น