0
Tải bản đầy đủ (.doc) (94 trang)

Một số vấn đề khi sử dụng biến và hằng

Một phần của tài liệu PHÁT TRIỂN ỨNG DỤNG VỚI VB (Trang 79 -84 )

5 Khái nim cs v lp trình (ti p) ậế

5.3 Một số vấn đề khi sử dụng biến và hằng

và hằng

5.3.1 Nhiều biến với cùng 1 tên

Nếu có các biến công cộng trong các module khác nhau có cùng tên, để chỉ phân biệt rõ chúng trong mã lệnh, chúng ta cần nêu rõ tên của module chứa biến cùng tên biến.

Nếu 2 biến công cộng kiểu Integer tên intX khai báo trong cả Form1 và Module1, chúng ta có thể chỉ rõ biến theo cách Module1.intX và Form1.intX.

Ví dụ: tạo 1 project với:2 module standard, 1 form với 2 command button.

Biến intX được khai báo trong module standard đầu tiên: Module1. Module1 có thủ tục Test.

Public intX As Integer ' Declare Module1's intX. Sub Test()

' Set the value for the intX variable in Module1. intX = 1

End Sub

Biến intX khác được khai báo trong module standard thứ hai: Module2. Module2 cũng có thủ tục tên Test.

Public intX As Integer ' Declare Module2's intX. Sub Test()

' Set the value for the intX variable in Module2. intX = 2

End Sub

Biến intX thứ 3 được khai báo trong form: form1. Module mã lệnh của form1 cũng có thủ tục tên Test.

Public intX As Integer ' Declare the form's intX ' variable.

Sub Test()

' Set the value for the intX variable in the form. intX = 3

End Sub

Ba command button trên form1 tương ứng gọi 3 thủ tục Test và sử dụng MsgBox để hiển thị giá trị của 3 biến.

Module1.Test ' Calls Test in Module1. MsgBox Module1.intX ' Displays Module1's intX. End Sub

Private Sub Command2_Click()

Module2.Test ' Calls Test in Module2. MsgBox Module2.intX ' Displays Module2's intX. End Sub

Private Sub Command3_Click()

Test ' Calls Test in Form1. MsgBox intX ' Displays Form1's intX. End Sub

Chạy chương trình, nhấn vào từng command buttons. Chúng ta sẽ thấy việc gọi tới 3 biến khác nhau trong 3 module. Chú ý rằng, với nút lệnh thứ 3, chúng ta không chỉ rõ tên module chứa khai báo biến.

Kh¸i niÖm c¬ së vÒ lËp tr×nh (2)

5.3.2 Biến công cộng và biến địa phương

Chúng ta có thể có biến cùng tên nhưng ở các phạm vi khác nhau. Ví dụ: 1 biến công cộng (public) tên Temp và trong 1 thủ tục có khai báo 1 biến địa phương (local) cũng với tên Temp. Khi đó nếu gọi tới Temp trong thủ tục là sử dụng biến Temp địa phương trong đó, còn khi gọi tới Temp bên ngoài thủ tục, thì biến công cộng Temp sẽ được sử dụng.

Public Temp As Integer Sub Test()

Dim Temp As Integer

Temp = 2 ' Temp has a value of 2.

MsgBox Form1.Temp ' Form1.Temp has a value of 1. End Sub

Private Sub Form_Load()

Temp = 1 ' Set Form1.Temp to 1. End Sub

Private Sub Command1_Click() Test

5.3.3 Biến thuộc tính form và control

Thuộc tính của form, các controls, hằng và hàm/thủ tụcđược xem như biến trong phạm vi toàn module form. Do đó, không được có thuộc tính form hay control có cùng tên với biến được khai báo trong module form.

Trong module form, các biến địa phương có thể cùng tên với các control. Để chỉ rõ là control khi cần đặt hay lấy giá trị của control đó, chúng ta có thể nêu tên của form hay sử dụng từ khoá Me.

Private Sub Form_Click () Dim Text1, BackColor

' Assume there is also a control on the form called ' Text1.

Text1 = "Variable" ' Variable shadows control. Me.Text1 = "Control" ' Must qualify with Me to get ' control.

Text1.Top = 0 ' This causes an error!

Me.Text1.Top = 0 ' Must qualify with Me to get ' control.

BackColor = 0 ' Variable shadows property. Me.BackColor = 0 ' Must qualify with Me to get ' form property.

Kh¸i niÖm c¬ së vÒ lËp tr×nh (2)

5.3.4 Tránh tham chiếu vòng

Bởi vì 1 hằng số có thể được định nghĩa từ những hằng số khác, chúng ta cần cẩn thận để tránh xảy ra tham chiếu vòng.

Ví dụ:

' In Module 1:

Public Const conA = conB * 2 ' Available throughout ' application.

' In Module 2:

Public Const conB = conA / 2 ' Available throughout ' application.

Khi tham chiếu vòng xảy ra, Visual Basic sẽ sinh lỗi khi chạy chương trình. Để tránh tham chiếu vòng, nên giới hạn việc khai báo các hằng công cộng vào trong 1 module duy nhất.

Một phần của tài liệu PHÁT TRIỂN ỨNG DỤNG VỚI VB (Trang 79 -84 )

×