- ทำไมใน VB 5.0 เมื่อเราเขียนโปรแกรมเรียกใช้คอนโทล เช่น
strName = Text1.text
strName = Text1
การเรียกใช้งานทั้งสองรูปแบบนี้จึงทำงานทั้งคู่
ตอบ Text property เป็นค่า Default ของคอนโทล ฉะนั้นแต่ละคอนโทลจึงมี Default Property เป็นของคอนโทลแต่ละตัว เพื่อน ๆ ลองหาดูนะครับว่าคอนโทลตัวอื่น ๆ ใช้ Property อะไรเป็น Default
- หากทำการประกาศตัวแปรดังตัวอย่างต่อไปนี้
Dim strName as String
Dim strName$
เรานำตัวแปรที่ชื่อว่า strName และ strName$ มาใช้ในการเขียนโปรแกรมจะเกิด Error สำหรับตัวแปรที่มีชื่อ strName$ หรือไม
ตอบ ไม่เกิด Error เพราะ หากมองย้อนหลังไปภาษาเบสิก มีมานานแล้ว สมัยก่อนชนิดตัวแปรบนภาษาเบสิก ไม่สามารถแยกชนิดได้ชัดเจนเหมือน VB อีกทั้งไม่มีมาตราฐานกลาง เหมือนภาษา C หรืออื่น ๆ หากกำหนดตัวแปรขึ้นมาใช้แล้ว ส่วนใหญ่จึงเป็นประเภท Variant เป็นส่วนใหญ่ ดังนั้น เขาจึงใช้สัญญลักษณ สำหรับแยกประเภทของชนิดตัวแปร เมื่อนำมาใช้งานกัน เช่น $ แทน String , % แทนค่า Integer , & แทน Long Integer ,! แทน Single เป็นต้น
- อะไรคือความแตกต่างระหว่าง Build in function ใน VB ที่มีชื่อเหมือนกันเช่น
Dim strData as string
strData = Str(1234)
strData = str$(1234)
เมื่อเรียกใช้งาน str Function และ str$ Function ทั้งคู่ต่างก็ทำงานทั้งคู่ทำไมภาษเบสิกจึงมี Function ในลักษณะดังกล่าวมาให้ถึงสองแบบ
ตอบ ในกรณีแรก strData = Str(1234) ลักษณะการทำงานคือ 1234 เป็นข้อมูลทาง Numeric จากนั้นเราทำการแปลงเป็น String โดยใช้คำสั่ง str() ในระหว่างที่เก็บค่าที่ทำการแปลงใหม่นี้จะเก็บข้อมูลเป็นแบบ Variant ก่อนใส่ลงในตัวแปร strData ดังรูปที่ 1

รูปที่ 1 เกี่ยวกับการใช้คำสั่งภายในแบบ Naked
กรณีที่สอง strData = str$(1234) การใช้คำสั่ง Function ภายในเป็นแบบระบุชนิดตัวแปรที่แน่นอนคือเป็น String ดังนั้นจึงใช้เนื้อที่ในหน่วยความจำน้อยกว่าแบบแรก ดังรูปที่ 2

รูปที่ 2 เกี่ยวกับการใช้คำสั่งภายในแบบ Dress to Kill