Biến toàn cục và biến cục bộ trong C#

Khóa học lập trình C# căn bản

5.0 (2 đánh giá)
Tạo bởi Trần Thành Vi Thanh Cập nhật lần cuối 22:32 22-03-2019 30.081 lượt xem 0 bình luận
Học nhanh

Danh sách bài học

Biến toàn cục và biến cục bộ trong C#

Dẫn nhập

Ở các bài học trước, chúng ta đã cùng nhau tìm hiểu về CẤU TRÚC CƠ BẢN CỦA MỘT HÀM. Chúng ta đã từng nghe đến biến cục bộ và biến toàn cục.

Vậy biến cục bộ và biến toàn cục là gì. Chúng ta cùng tìm hiểu ở bài này nhé!


Nội dung

Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về các phần:

Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề:

  • Biến toàn cục và biến cục bộ trong C#

Biến toàn cục và biến cục bộ trong C#

Biến toàn cục là biến được khai báo ở phân cấp cao hơn vị trí đang xác định.

Biến cục bộ là biến được khai báo ở cùng phân cấp tại vị trí đang xác định.

Vòng đời của biến toàn cục và biến cục bộ bắt đầu khi khối lệnh chứa nó bắt đầu (khối lệnh bắt đầu bằng dấu “{“) và kết thúc khi khối lệnh chứa nó kết thúc (khối lệnh kết thúc bằng dấu “}”).

Biến cục bộ được ưu tiên sử dụng hơn biến toàn cục trong trường hợp 2 biến này trùng tên.


Ví dụ:

Ví dụ về biến toàn cục

class Program

    {

        // biến toạn cục của các hàm nằm trong class Program

        // biến cục bộ của class Program

        static int value = 5;

        static void Main(string[] args)

        {

            // in ra màn hình biến toàn cục

            Console.WriteLine(value);

            PrintSomeThing();

            Console.ReadKey();

        }

    

        static void PrintSomeThing()

        {           

            // in ra màn hình biến toán cục

            Console.WriteLine(value);

        }

    }

Kết quả khi chạy chương trình trên:

Chúng ta thử thay đổi giá trị của biến value ngay trước khi gọi hàm PrintSomeThing nhé.

class Program

    {

        // biến toạn cục của các hàm nằm trong class Program

        // biến cục bộ của class Program

        static int value = 5;

        static void Main(string[] args)

        {

            // in ra màn hình biến toàn cục

            Console.WriteLine(value);



            // thay đổi giá trị của value

            value = 10;



            // kết quả gọi hàm này sẽ in ra màn hình giá trị là 10

            PrintSomeThing();

            Console.ReadKey();

        }

    

        static void PrintSomeThing()

        {           

            // in ra màn hình biến toán cục

            Console.WriteLine(value);

        }

    }

Kết quả là màn hình in ra giá trị 5 và 10. Do giá trị của biến value đã bị thay đổi trước khi gọi hàm PrintSomeThing.

 Và giờ chúng ta thử tạo một biến cục bộ ngay bên trong hàm PrintSomeThing.

class Program

    {

        // biến toạn cục của các hàm nằm trong class Program

        // biến cục bộ của class Program

        static int value = 5;

        static void Main(string[] args)

        {

            // in ra màn hình biến toàn cục

            Console.WriteLine(value);



            // thay đổi giá trị của value

            value = 10;



            // kết quả gọi hàm này sẽ không thay đổi vì ưu tiên biến cục bộ hơn

            PrintSomeThing();

            Console.ReadKey();

        }

    

        static void PrintSomeThing()

        {

            int value = 9;

            // in ra màn hình biến toàn cục

            Console.WriteLine(value);

        }

    }

Kết quả màn hình in ra giá trị 5 và 9. Không in ra giá trị 10 vì biến cục bộ được ưu tiên sử dụng hơn. Ở hàm Main, thay đổi giá trị của biến value thì biến value này đang là biến toàn cục. Không làm thay đổi giá trị của biến cục bộ bên trong hàm PrintSomeThing.

 Lưu ý:

  • Parameter chính là một biến cục bộ.
  • Biến cục bộ có phạm vi sử dụng bên trong cặp dấu ngoặc nhọn { }.

 

static void Main(string[] args)

        {

            bool isTrue = true;



            if (isTrue)

            {

                int value = 5;

                Console.WriteLine(value);

            }

            else

            {

                // không thể sử dụng biến value vì hiện thời biến value là biến cục bộ của câu if true

                // vòng đời của biến cục bộ value chỉ nằm bên trong cặp dấu ngoặc nhọn {}

                Console.WriteLine(value);

            }

            Console.ReadKey();

        }

Kết luận

Qua bài này chúng ta đã nắm được biến toàn cục và biến cục bộ là gì.

Bài sau chúng ta sẽ tìm hiểu về TỪ KHÓA REF VÀ OUT TRONG C#

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Biến toàn cục và biến cục bộ trong C# dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Nội dung bài viết

Tác giả

Mỗi buổi sáng thức dậy, bạn có 2 lựa chọn, tiếp tục ngủ để mơ những giấc mơ hoặc thức dậy và theo đuổi chúng!

Khóa học

Khóa học lập trình C# căn bản

Bạn mới bắt đầu học lập trình? Bạn đang muốn học thêm ngôn ngữ lập trình mới? C# là lựa chọn hoàn hảo để đáp ứng các nhu cầu trên.

Ngôn ngữ C# là một ngôn ngữ mới, cấu trúc rõ ràng, dễ hiểu và dễ học. C# thừa hưởng những ưu việt từ ngôn ngữ Java, C, C++ cũng như khắc phục được những hạn chế của các ngôn ngữ này. C# là ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, được xây dựng dựa trên C++ và Java.

Khoá học lần này sẽ mang đến toàn bộ những kiến thức cơ bản về C#. Chào mừng các bạn đã đến với khoá học LẬP TRÌNH C# CƠ BẢN của Kteam.

Đánh giá

ductung200119998 đã đánh giá 19:38 01-03-2019

lightghostt đã đánh giá 19:38 01-03-2019

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Không có video.