เทคนิคพื้นฐานในการเขียนโปรแกรม Visual Basic

Posted by Unknown Thursday, August 9, 2012 1 comments


แม้ว่า Visual Basic จะเป็นภาษาที่ใช้งานได้ง่ายก็ตาม และ ตัวโปรแกรม Visual Basic เองยังมีขีดความสามารถ ในการทำงานอันเพียบพร้อม ซึ่งช่วยให้เราสามารถเขียนโค้ดได้ง่ายขึ้น และ มีการตรวจสอบโค้ดได้ ในขณะเขียนโดยอัตโนมัติ แต่เราก็ควรจะทำตามกฏเกณฑ์บางอย่าง ซึ่งผมจะแนะนำให้ดังต่อไปนี้ เพื่อให้โปรแกรมเขียนออกมาทำงานได้อย่างถูกต้อง แม่นยำ และ บำรุงรักษาได้ง่าย
เทคนิคที่ 1 ใช้ Option Explicit อยู่เสมอ การใช้ Option Explicit อยู่เสมอ จะช่วยป้องกันการพิมพ์ชื่อตัวแปร หรือ ค่าคงที่ผิดพลาด อันจะช่วยในการกำจัด Bug บางตัวที่ซ่อนอยู่ในโปรแกรม และ อาจรอวันประทุ เมื่อโปรแกรมมีขนาดใหญ่ขึ้น เช่น ถ้าเราไม่ใช้ Option Explicit เราจะไม่ทราบว่า ตัวแปรใดมีการประกาศเอาไว้ หรือ มีข้อมูลเป็นแบบใด ซึ่งอาจก่อให้เกิดการแปลงข้อมูลที่ผิดพลาดในอนาคต

 เทคนิคที่ 2 ใช้ NOT แทน <> เมื่อต้องการตรวจสอบความไม่เท่ากัน
การใช้ฟังค์ชั่น NOT จะทำงานได้เร็วกว่า <> เป็นอย่างมาก
โดยเฉพาะอย่างยิ่ง เมื่อทำงานในลูป ดังตัวอย่างต่อไปนี้

Dim i As Integer

แทนที่จะใช้

If i <> 5000 Then DoSomeThing

เราควรใช้

If Not i = 5000 Then DoSomeThing

เทคนิคที่ 3 ใช้ฟังค์ชั่น Len เพื่อตรวจสอบว่าข้อความว่างเปล่าหรือไม่
ฟังค์ชั่น Len ทำงานได้เร็วกว่ามาก โดยเฉพาะอย่างยิ่งเมื่อทำงานในลูป
ดังตัวอย่างต่อไปนี้
Dim sTemp As String

แทนที่จะใช้

If sTemp = "" Then DoSomeThing

' Check if sTemp is empty

If sTemp <> "" Then DoSomeThing

' Check if sTemp has a value



เราควรใช้

If Len(sTemp) = 0 Then Do SomeThing

' Check if sTemp is empty

If Len(sTemp) > 0 Then DoSomeThing

' Check if sTemp has a value.

 เทคนิคที่ 4 เมื่อประกาศออปเจกต์ อย่าใช้ Dim ... As New ...



แทนที่จะประกาศออปเจกต์เป็น Instance ตัวใหม่ เราควรประกาศตัวแปรเป็นชนิดออปเจกต์นั้น
แล้วค่อยสร้าง Instance ขึ้นมาใหม่ ทั้งนี้เพื่อให้ทำงานได้เร็วขึ้น
และ รับประกันว่าจะมีการล้างหน่วยความจำที่ใช้โดยออปเจกต์
เมื่อเราไม่ต้องการใช้มันอีกต่อไป ด้วยการกำหนดค่า Nothing
ให้ ดังตัวอย่างต่อไปนี้

แทนที่จะใช้

Dim MyConnect As New Connection

เราควรใช้

Dim MyConnect As Connection

Set MyConnect = New Connection

จากนั้นเมื่อเราใช้เสร็จแล้ว เราควรล้างหน่วยความจำ
ด้วยการกำหนดค่า Nothing ให้กับตัวแปรดังนี้

Set MyConnect = Nothing

เทคนิคที่ 5 กำหนดชนิดของตัวแปรให้ชัดเจน


การกำหนดชนิดของตัวแปรให้ชัดเจน เช่น เป็นตัวแปรชนิด
Long หรือ Integer จะช่วยให้โปรแกรมทำงานเร็วขึ้น
(ก็เพราะตัวแปลภาษา - Complier ทราบถึงชนิดของตัวแปรเรียบร้อยแล้ว
ไม่จำเป็นต้องมาเสียเวลาหาอีก) และ ง่ายต่อการ Debug
เพราะเราสามารถคาดเดา ได้ว่าตัวแปรนั้น สามารถรับค่าช่วงใดได้บ้าง

Dim sMsg As String

Dim iCounter As Integer

Dim vTemp As Variant



ซึ่งเราอาจประกาศตัวแปรหลายตัวเอาไว้บนบรรทัดเดียวกัน
ดังนี้

Dim sMsg As String, iCounter As Integer, vTemp As
Variant



โดยมีข้อควรระวัง คือ ถ้าเราไม่ได้ระบุชนิดข้อมูล จะเป็นการประกาศให้เป็นชนิด
Variant ดังตัวอย่างต่อไปนี้

Dim iCounter ดังนั้นตัวแปร iCounter จะกลายเป็นชนิด
Variant โดยทันที


เทคนิคที่ 6 ระมัดระวังในการใช้ฟังค์ชั่น String และ Variant ที่อาจให้ผลลัพธ์ต่างกัน


ใน Visual Basic เราจะมีฟังค์ชั่นที่ลงท้ายด้วยเครื่องหมาย Dollar Sign
"$" อยู่กลุ่มหนึ่ง คู่กับฟังค์ชั่นชื่อเดียวกันที่ไม่ได้ลงท้ายด้วย
$ เช่น

MID กับ MID$

Left กับ Left$

Date กับ Date$

ซึ่งฟังค์ชั่น Date นี้เป็นตัวอย่างที่ดี โดยฟังค์ชั่น
Date จะส่งค่าคืนกลับเป็นชนิด Variant ในรูปแบบของ mm/dd/yy
ในขณะที่ฟังค์ชั่น Date$ ส่งค่ากลับคืนเป็นชนิด String
ในรูปแบบ mm/dd/yyyy ซึ่งถ้าใช้ไม่ระมัดระวัง ความแตกต่างนี้
จะก่อให้เกิด Bug ที่ต้องใช้เวลาพอสมควรในการค้นหา


เทคนิคที่ 7 จำลองคีย์แท็บ เมื่อกด Enter


ปกติเมื่อเราใส่ TextBox หลายอันเข้าไปในฟอร์ม เพื่อรับข้อมูล
คงไม่เป็นการสะดวกแน่ ถ้าผู้ใช้ต้องกดคีย์แท็บ เพื่อเลื่อนไปยังฟิลด์ถัดไปทุกครั้งที่คีย์ข้อมูลเสร็จ
โค้ดต่อไปนี้จะเลื่อน Cursor ไปยังฟิลด์ถัดไป เมื่อผู้ใช้กดคีย์
Enter ซึ่งจะช่วยให้ใช้โปรแกรมได้ง่ายขึ้น



Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = vbKeyReturn Then

SendKeys "{TAB}"

KeyAscii = 0

End If

End Sub

เทคนิคที่ 8 ระวังความแตกต่างของค่าคงที่ vbNullXXX VB มีค่าคงที่ ที่ใช้ระบุถึงค่า
Null หลายตัวดังนี้


vbNull
เป็นข้อมูลชนิด Long มีค่าเท่ากับ 1

vbNullChar
เป็นข้อมูลชนิด String มีค่าเท่ากับ Chr$(0) ซึ่งตรงกับข้อความว่าง
ในภาษา C และค่าที่ส่งกลับคืนมาจากฟังค์ชั่น DLL ส่วนใหญ่
อย่างไรก็ตาม vbNullChar จะไม่ใช่ข้อความว่างใน VB

vbNullString
เป็นข้อมูลชนิด String ใีค่าเท่ากับข้อความว่างใน VB



ซึ่งแต่ละตัวใช้ในสถานการณ์ต่างกันดังนี้



vbNull
ใช้เพื่อตรวจสอบผลลัพธ์ของฟังค์ชั่น VarType() ซึ่งหมายความว่า
ไม่มีข้อมูลที่ถูกต้อง

vbNullChar
ใช้แทน Chr$(0) ซึ่งปกติใช้เพื่อเรียกใช้ Procedure
ภายนอก

vbNullString
ใช้เพื่อเคลียร์ String



โดย vbNullChar มีค่าไม่เท่ากับ vbNullString ดังนั้น
vbNullChar = vbNullString จะได้ค่าเป็น False เสมอ 




1 comments:

yettielaviola said...

Casino Game - Dr. MD
Casino Game. For many years, the industry has dominated the gaming industry, and 남원 출장샵 now Dr. MD offers 밀양 출장마사지 a variety of 사천 출장샵 casino games in its 경상북도 출장마사지 offering. This  Rating: 삼척 출장샵 3 · ‎2 votes

Post a Comment