Bài 15. Biến toàn cục và biến cục bộ trong C#

0
229
Bài số 19 trong 20 bài của khóa học Khóa học C# cơ bản

Biến toàn cục và biến cục bộ khái niệm này được sinh ra khi mà các ngôn ngữ lập trình tiến hành thu dọn bộ nhớ sau mỗi lần thực hiện hàm hoặc khối lệnh. Việc xuất hiện khái niệm này khiến đối lúc gây khó chịu đối với người học lập trình, nhưng khái niệm này chỉ thực sự khó hiểu đối với những người không nắm chắc đó là gì. Vậy trong bài viết ngày hôm nay hãy cùng mình đi tìm hiểu nó nhé !

Biến toàn cục trong C#

Biến toàn cục là biến có thể sử dụng được ở mọi hàm, mọi khối lệnh, mọi vị trí trong chương trình miễn là vị trí sử dụng của nó hợp lệ. Ví dụ sau đây sẽ thể hiện cực kì rõ ràng về biến toàn cục.

Chương trình này cho ra kết quả:

Mặc dù biến a mình đã khai báo bên ngoài 2 hàm Main và hàm f nhưng khi mình sử dụng biến a trong 2 hàm này chương trình vẫn chạy bình thường. Vì vậy, trong chương trình này biến a sẽ được coi là biến toàn cục của chương trình.

Lưu ý:

  • Khai báo biến bên ngoài các hàm các bạn cần phải sử dụng thê từ khóa static ở trước.
  • Chúng ta vẫn có thể khai báo nhiều biến toàn cục cùng lúc bên ngoài hàm main, miễn là việc khai báo hợp lệ.

Ví dụ sau minh họa cho việc sử dụng biến toàn cục nhưng vị trí sử dụng không hợp lệ:

Chương trình này sẽ báo lỗi ở dòng 15 vì sử dụng câu lệnh với biến toàn cục không hợp lệ:

Biến cục bộ trong C#

Biến cục bộ là khái niệm chỉ cho một biến số, hay cấu trúc, được khai báo trong một hàm hoặc một khối lệnh và sẽ bị giải phóng bộ nhớ ngay sau khi chương trình thực thi xong hàm hoặc khối lệnh đó. Vì vậy, sau khi thoát ra khỏi hàm hay khối lệnh đó chúng ta không thể tiếp tục sử dụng biến cục bộ đó.

Nhắc tới biến cục bộ chúng ta có một ví dụ cực đơn giản liên quan tới vòng lặp for.

Chương trình này sẽ in ra các số từ 0 tới 4 như sau:

Trong chương trình này biến i ở vòng lặp for sẽ được coi là biến cục bộ vì biế này được khai báo trong khối lệnh for. Giờ chúng ta thử sử dụng bên ngoài khối lệnh for xem chuyện gì xảy ra nhé !

Chương trình này sẽ báo lỗi ở dòng 14, lỗi này nói rằng biến i ở khối lệnh hiện tại không tồn tại, chứng tỏ rằng chương trình đã giải phóng bộ nhớ của biến i ngay sau khi kết thúc vòng lặp for.

Chúng ta cùng đến một ví dụ khác với biến cục bộ trong một hàm:

Không khó hiểu khi chương trình này cho ra kết quả là 100. Biến i được khai báo trong hàm In100 sẽ được coi là biến toàn cục vì nó được khai báo trong hàm In100 và sẽ bị giải phóng bộ nhớ ngay sau khi hàm này thực thi xong. Chúng ta thử sử dụng biến i trong hàm Main, một hàm khác của chương trình.

Chương trình này sẽ báo lỗi ở dòng 12. Vì biến i lúc này không tồn tại.

Tổng kết

Mặc dù khái niệm biến toàn cục và biến cục bộ có đôi chút gây khó chịu đối với người học lập trình hay là người lập trình viên lâu năm. Nhưng việc xuất hiện khái niệm này giúp chúng ta làm quen với khái niệm clean code (code sạch). Clean Code sẽ là một việc rất tốt vì code của bạn sẽ cực kì dễ đọc và dễ hiểu. Cảm ơn bạn đã đọc bài viết này. Hãy tiếp tục đồng hành cùng Lập trình không khó trong các bài viết tiếp theo nhé !

(các bạn có thể tham khảo thêm một số vấn đề của một số người dùng khác về vấn đề này tại đây).

Các bài viết trong khóa họcBài trước: Bài 14. Hàm đệ quy trong C#Bài sau: Bài 16. Tham trị và tham chiếu, từ khóa ref, out trong C#
Là một học sinh cấp 3 có niềm đam mê mãnh liệt với lập trình với châm ngôn "Code ra bugs mới là lập trình viên".
Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments