Windows Việt

Cộng Đồng Công Nghệ Thông Tin Việt

Trang ChínhTrang Chính  Sự kiện  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Share
 
 Khai báo biến trong Visual Basic
Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
binh08dbb
Member

binh08dbb
Member
Giới tính : Nam
Tuổi : 30
Posts Posts : 126
Coins Coins : 264
Thanked Thanked : 21
Khai báo biến trong Visual Basic Empty

Biến trong VB.Net

Biến là một vùng nhớ được sử dụng để lưu trữ các giá trị khác nhau trong quá trình hoạt động của chương trình như các giá trị được người dùng nhập vào, các giá trị tính toán tạm thời , ...

Biến là một thực thể với 6 tính chất sau :

1/- Name : Tên của biến phải là định danh hợp lệ trong VB.Net, nghĩa là phải bắt đầu bằng một chữ cái hoặc ký tự _ và không được trùng với các từ khóa của VB.Net. Trường hợp muốn dùng từ khóa làm tên biến phải được dùng trong ngoặc vuông như [String], [Boolean], … Tên biến nên có ý nghĩa gợi nhớ đến nội dung trong nó như Don_gia, So_luong_xuat.

2/- Address : Địa chỉ vùng nhớ nới lưu giữ giá trị của biến. Trong chu kỳ sống, địa chỉ của biến có thể thay đổi.

3/- Type : Kiểu dữ liệu của biến. Mỗi biến phải thuộc về một kiểu dữ liệu trong Common Type System.

4/- Value : Giá trị của biến phải phù hợp với kiểu dữ liệu của biến.

5/- Scope : Phạm vi sử dụng của biến.

Mỗi biến có phạm vi sử dụng trong chương trình nơi biến được nhìn nhận đối với câu lệnh. Có các phạm vi sau :

- Phạm vi khối lệnh và phạm vi thủ tục

Khối lệnh là tập hợp các dòng lệnh được kết thúc bằng End, Else, Loop hoặc Next như trong cấu trúc For … Next, If … Then … Else … End If, Do While … Loop, Using … End Using.

Biến khai báo trong khối lệnh có phạm vi sử dụng chỉ trong khối lệnh

Ví dụ :

Đoạn lệnh trên sẽ gây lỗi tại dòng MsgBox(a.ToString()) vì biến a chỉ có phạm vi sử dụng trong khối lệnh If … End If.

Khi biến được khai báo trong một thủ tục nhưng không trong một khối lệnh, biến sẽ có phạm vi sử dụng trong toàn thủ tục. Đây là trường hợp đặc biệt của phạm vi khối lệnh với khối lệnh là toàn bộ thủ tục.

Biến có phạm vi khối lệnh và phạm vi thủ tục là biến cục bộ.

- Phạm vi module và phạm vi project

Có những khác biệt trong phạm vi sử dụng đối với các biến khai báo chung trong module chuẩn (Standard module) và lớp (Class module). Trước tiên, bạn cần lưu ý rằng bản thân Module chuẩn được khai báo với một trong 3 từ khóa sau : Public, Friend và Private.

Tùy theo từ khóa mà phạm vi sử dụng của các thành phần trong module bị giới hạn.

Ví dụ : một biến Public khai báo trong một module Friend sẽ có phạm vi sử dụng Friend :

+ Truy xuất Private : nếu biến được khai báo trên phần Declaration của module với từ khóa Private sẽ chỉ có phạm vi sử dụng trong module.

+ Truy xuất Friend : nếu biến được khai báo trên phần Declaration của module với từ khóa Friend sẽ có phạm vi sử dụng trong toàn bộ project. Các project khác không thấy biến này.

+ Truy xuất Public : nếu biến được khai báo trên phần Declaration của module với từ khóa Public sẽ có phạm vi sử dụng trong toàn bộ project và trong bất kỳ project nào bên ngoài có một tham chiếu (reference) đến project đó.

6/- LifeTime : Thời gian tồn tại của biến.

Trong phạm vi sử dụng của biến xác định nơi biến được phép sử dụng thì thời gian tồn tại của biến xác định khoảng thời gian biến có thể lưu giữ giá trị.

Biến có phạm vi module có thời gian tồn tại là thời gian ứng dụng đang thực hiện.

Biến có phạm vi khối lệnh, thù tục chỉ tồn tại trong khi khối lệnh, thủ tục đang thực hiện. Biến này sẽ được khởi tạo theo giá trị mặc định của kiểu dữ liệu khi được khai báo và chấm dứt khi khối lệnh, thủ tục kết thúc.
Khai báo và khởi tạo

Lệnh khai báo biến là cú pháp kết hợp tên biến và kiểu dữ liệu. Bản thân lệnh này không hàm ý khởi tạo biến. Tuy nhiên, với các biến không phải kiểu đối tượng, lệnh khai báo biến cũng chính là lệnh khởi tạo biến.

Dim so as Integer

Để nhấn mạnh vai trò của hàm, có thể viết :

Dim so as Integer = New Integer()

Khi khai báo nhiều biến trên cùng dòng và không chỉ ra kiểu của biến, biến sẽ lấy kiểu dữ liệu của biến khai báo dữ liệu tường minh tiếp sau đó.

Dim so As Integer, so_a, so_b, so_c As Long

Các biến so_a, so_b, so_c có cùng kiểu Long.

Nếu không khai báo kiểu dữ liệu, biến có kiểu là object

Dim m, n tương đương với Dim m, n As Object

Có thể khai báo và khởi tạo giá trị cho biến cùng lúc. Trong cách này, phải khai báo tường minh kiểu dữ liệu cho từng biến

Dim x As Integer = 100, y As Integer = 200

Với các biến kiểu đối tượng, cách khai báo cũng như vậy

Dim dt_A As MyClass

Lệnh trên chưa tạo ra biến đối tượng và sau dòng lệnh dt_A vẫn là Nothing.

Những cách sau đây sẽ khai báo và tạo biến đối tượng :

Dim dt_A As New MyClass()

hoặc

Dim dt_A As MyClass = New MyClass()

hoặc

Dim dt_A As MyClass

dt_A = New MyClass()

Trong cùng phạm vi khai báo tên biến phải duy nhất, nếu không sẽ gây lỗi. Ví dụ : lỗi do khai báo hai biến trùng tên trong cùng phạm vi

Dim a, b, c As String

Dim b As Integer
Các từ khóa để khai báo biến

Kiểu trị và tham chiếu (Value Type và Reference Type)

Các kiểu được định nghĩa trong Common Type System thuộc 3 loại sau :

- Kiều trị (Value Type).

- Kiểu tham chiếu (Reference Type).

- Kiểu con trỏ (Pointer Type).

VB.Net không có kiểu con trỏ chỉ xem xét kiểu trị và kiểu tham chiếu.

Khi một biến kiểu trị được khai báo, một vùng nhớ được dành riêng để chứa giá trị thực của biến. Ngược lại, khi một biến kiểu tham chiếu được khai báo, trình biên dịch sẽ tạo đối tượng trên vùng nhớ, nhưng sẽ cấp phát cho biến bốn byte chứa địa chỉ vùng nhớ của đối tượng. Tóm lại, biến kiểu trị chứa giá trị của biến còn biến kiểu tham chiếu chỉ đến nơi chứa giá trị.

Sự khác biệt này dẫn đến nhiều hệ quả mà phép gán là một. Ví dụ :

- Kiểu trị :

Khi được gán cho nhau, 2 biến kiểu trị a, b cùng chứa 1 giá trị trên hai vùng nhớ khác nhau. Vì vậy thay đổi giá trị của biến nào chỉ giá trị trên vùng nhớ của biến đó thay đổi.

- Kiểu tham chiếu :

Ngược lại, khi được gán cho nhau, 2 biến tham chiếu lblA, lblB cùng chứa địa chỉ trỏ đến cùng một Label. Vì vậy, khi thay đổi thuộc tính của lblA hoặc lblB cũng chính là thay đổi thuộc tính của một Label. Tương tự khi truy xuất, tuy thông qua hai biến khác nhau nhưng truy đến cùng địa chỉ và giá trị chỉ là một.

Chú ý

Kiểu String cũng là kiểu tham chiếu nhưng có một số đặc tính của kiểu trị.

ch1 chứa "Chuỗi 2" nhưng ch1 lại chứa "Chuỗi 1". Lý do : khi biến kiểu String đã được tạo ra, giá trị của chúng không thể sửa đổi. Sửa đổi trị của biến String là tạo ra một thể hiện mới chứa nội dung sửa đổi. Do vậy :

- Khi gán ch2 = ch1, ch2 trỏ đến cùng một chuỗi như ch1.

- Nhưng khi gán ch2 = "Chuỗi 2" do không thể thay đổi giá trị nên ch2 trỏ đến một thể hiện mới khác với ch1.

Bảng cho biết kiểu dữ liệu thuộc kiểu trị hay kiểu tham chiếu :

Hết

※ Bài viết cùng chuyên mục


 
Khai báo biến trong Visual Basic
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Windows Việt :: Lưu Trữ :: Lưu Trữ - Các môn học cũ :: Lập Trình Ứng Dụng Quản Lý 1-
[Windows Việt] Deverloped by Nguyễn Gia Phú - https://windows.forumvi.com
Powered by © Forumotion.com - phpBB™ version ©phpBB2
Go to top Go to bottom