Phạm vi hoạt động của biến trong C#
Nguyễn Dương 07-06-2024Trong bài viết trước, chúng ta đã cùng tìm hiểu về hàm trong C#. Vấn đề đặt ra là biến trong một hàm nào đó thì nó sẽ ảnh hưởng như thế nào đối với chương trình C#. Nếu có những biến tên trùng nhau thì sao. Trong bài viết này chúng ta sẽ cùng tìm hiểu rõ hơn về phạm vi hoạt động của biến nhé.
Phạm vi hoạt động của biến được xác định bằng việc vị trí khai báo biến đó nằm trong cặp dấu ngoặc nhọn nào. Biến được khai báo trong cặp dấu ngoặc nhọn của hàm thì nó chỉ ảnh hưởng trong hàm đó, biến được khai báo trong cặp dấu ngoặc nhọn của class thì nó ảnh hưởng đến tất cả các hàm trong class đó.
1. BIẾN TOÀN CỤC
Biến toàn cục là biến có phạm vi ảnh hưởng đến tất cả các phần tử cùng phân cấp với nó.
Ví dụ:
Ví dụ:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp4 { class Program { static int a = 69; static void Main(string[] args) { int b = 96; Console.WriteLine("Tong hai so a va b la: " +(a + b)); DemoSum(a, b); Console.ReadLine(); } static void DemoSum(int firstNum, int secondNum) { int sumNum = firstNum + secondNum; Console.WriteLine("{0} + {1} = {2}", firstNum, secondNum, sumNum); } } }
Qua ví dụ trên, bạn có thể thấy, biến a được khai báo trong cặp dấu ngoặc nhọn của class nên phạm vi của nó ảnh hưởng lên tất cả các hàm trong class đó. Biến a được khai báo nằm ngoài hàm Main nhưng trong hàm Main, mình vẫn dùng nó để tính toán được. Như vậy biến a sẽ được gọi là biến toàn cục của tất cả các hàm trong class trên.
2. BIẾN CỤC BỘ
Biến cục bộ là biến chỉ có phạm vi hoạt động trong 1 phân cấp nào đó.
Trong ví dụ trên, biến a là biến toàn cục của tất cả các hàm trong cùng class với nó nhưng nó lại là biến cục bộ của class đó.
Ta xét thêm ví dụ sau:
namespace ConsoleApp4 { class Program { static int a = 69; static void Main(string[] args) { int b = 96; Console.WriteLine("Tong hai so a va b la: " +(a + b)); DemoSum(); Console.ReadLine(); } static void DemoSum() { int a = 15, b = 25; int sum = a + b; Console.WriteLine("{0} + {1} = {2}", a, b, sum); } } }
Qua ví dụ này, bạn sẽ thấy, tại hàm DemoSum, mình cũng khai báo 1 biến a và 1 biến b. Trùng tên với biến a trong class, trùng tên với biến b ở hàm Main. Khi tính tổng thì giá trị của biến a được lấy là 15, biến b là 25. Vì biến a và b trong hàm DemoSum chỉ có phạm vi hoạt động trong hàm đó. Nên chúng được gọi là biến cục bộ trong hàm DemoSum. Biến b = 96 trong hàm Main được gọi là biến cục bộ trong hàm Main.
Lời kết: Một biến được xác định là biến toàn cục hay biến cục bộ chỉ mang tính tương đối, việc xác định dựa vào phạm vi ảnh hưởng của nó lên chương trình. Một biến được gọi là toàn cục với phân cấp này nhưng lại là biến cục bộ của phân cấp bao bọc nó.
Bài viết liên quan
Hàm đệ quy trong C#
enum trong C#
Struct trong C#
Lớp String trong C#
Vòng lặp foreach trong C#
Mảng đa chiều, mảng của mảng trong C#