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
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:
- BIẾN và KIỂU DỮ LIỆU trong C#
- TOÁN TỬ TRONG C#
- CÂU ĐIỀU KIỆN TRONG C#
- CẤU TRÚC CƠ BẢN VÒNG LẶP
- CẤU TRÚC CƠ BẢN CỦA HÀM
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 like và share để ủ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ê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
Khóa học
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.
Muốn làm bài tập thì tìm ở đâu mọi người???
Mình có 1 array static int[] a= new int[5] { 9, 2, 1, 3, 5 };
Mình viết một hàm SelectionSort() để sort array trên.
Bên trong SelectionSort() mình dùng thêm 1 hàm Hoanvi()
Khi build thì array của mình lại trả về mảng ban đầu { 9, 2, 1, 3, 5 }.
AD cho mình lời khuyên với ạ.
ad cho em hỏi gọi biến int a=...???? với lại static int a=....??? khác nhau chổ nào vậy ad và có thể sữ dụng từng cái như thế nào vậy ad???