Scope of Variables

The scope of a variable defines where it can be accessed in the program. Depending on where the variable is declared, it can have class-level, local, or block scope. Understanding variable scope helps manage variable accessibility and avoid errors.

Key Concepts

  • Class-Level Scope: Variables declared within a class but outside any methods are accessible throughout the class.
  • Local Scope: Variables declared within a method are accessible only within that method.
  • Block Scope: Variables declared inside a block (such as an if statement or loop) are only accessible within that block.

Examples of Variable Scope

Class-Level Scope Example

class Program
{
    // Class-level variable
    static string message = "Class-level variable";

    static void Main(string[] args)
    {
        // Access class-level variable
        Console.WriteLine(message);
    }
}

Output:

Class-level variable

Explanation: The variable message is declared at the class level, meaning it can be accessed by any method within the class. In this case, it is accessed directly from the Main method.

Local Scope Example

class Program
{
    static void Main(string[] args)
    {
        // Local variable
        int number = 100;
        Console.WriteLine($"Local variable value: {number}");
    }
}

// This would cause an error
// Console.WriteLine(number); // Cannot access local variable outside method

Output:

Local variable value: 100

Explanation: The variable number is declared within the Main method, meaning it is local to this method. Trying to access it outside the method would result in an error because its scope is limited to the method where it was declared.

Block Scope Example

class Program
{
    static void Main(string[] args)
    {
        if (true)
        {
            // Block scope variable
            string blockMessage = "Inside block scope";
            Console.WriteLine(blockMessage);
        }
        // Uncommenting the next line will result in an error
        // Console.WriteLine(blockMessage); // Block scope variable not accessible here
    }
}

Output:

Inside block scope

Explanation: The variable blockMessage is declared within the block of the if statement. This variable is only accessible inside the block where it was declared, and attempting to access it outside the block would result in an error.