Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Область видимости переменной C#

Область действия переменной C#

В этом руководстве вы узнаете об области видимости переменных в C# с помощью примеров.

Область действия переменных относится к доступности переменных в определенных частях кода.

В C# переменная имеет три типа области видимости:

<час>

Область действия переменной уровня класса C#

В C#, когда мы объявляем переменную внутри класса, к этой переменной можно получить доступ внутри класса. Это называется областью действия переменной уровня класса. .

Переменные уровня класса называются полями и объявляются вне методов, конструкторов и блоков класса. Например,

using System;
namespace VariableScope {
  class Program {

    // class level variable
    string str = "Class Level";

    public void display() {
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.display();

      Console.ReadLine();
    }
  }
}

Вывод

Class Level

В приведенном выше примере мы инициализировали переменную с именем str. внутри Программы класс.

Поскольку это переменная уровня класса, мы можем получить к ней доступ из метода, присутствующего внутри класса.

public void display() {
  Console.WriteLine(str);
}

Это связано с тем, что переменная уровня класса доступна во всем классе.

Примечание :мы не можем получить доступ к переменной уровня класса через статические методы. Например, предположим, что у нас есть статический метод внутри Program. класс.

static void display2() {

  // Access class level variable
  // Cause an Error
  Console.WriteLine(str);
}
<час>

Область действия переменной уровня метода

Когда мы объявляем переменную внутри метода, доступ к этой переменной вне метода невозможен. Это известно как область действия переменной уровня метода. . Например,

using System;

namespace VariableScope {
  class Program {

    public void method1() {
      // display variable inside method
      string str = "method level";
    }

    public void method2() {

      // accessing str from method2()
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.method2();

      Console.ReadLine();
    }
  }
}

В приведенном выше примере мы создали переменную с именем str. внутри method1() .

// Inside method1()
string str = "method level";

Здесь ул является переменной уровня метода. Таким образом, к нему нельзя получить доступ за пределами method1() .

Однако, когда мы пытаемся получить доступ к str переменная из method2()

// Inside method2
Console.WriteLine(str);  // Error code

получаем ошибку.

Error   CS0103     The name 'str' does not exist in the current context  

Это связано с тем, что переменные уровня метода имеют область действия внутри метода, в котором они созданы. Например,

using System;
namespace VariableScope {
  class Program {

    public void display() {
     string str = "inside method";

      // accessing method level variable
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
    Program ps = new Program();
    ps.display();

    Console.ReadLine();
    }
  }
}

Вывод

inside method

Здесь мы создали str переменная и обращалась к ней одним и тем же методом display() . Следовательно, код работает без ошибок.

<час>

Область действия переменной уровня блока в C#

Когда мы объявляем переменную внутри блока (цикл for, цикл while, if..else), доступ к переменной возможен только внутри блока. Это известно как область действия переменной на уровне блока. . Например,

using System;

namespace VariableScope {
  class Program {
    public void display() {

      for(int i=0;i<=3;i++) {
        	 
      }
    Console.WriteLine(i);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.display();

      Console.ReadLine();
    }
  }
}

В приведенной выше программе мы инициализировали переменную уровня блока i. внутри for петля.

for(int i=0;i<=3;i++) {
       	 
}

Поскольку i является переменной уровня блока, когда мы пытаемся получить доступ к переменной вне for петля,

// Outside for loop
Console.WriteLine(i);

получаем ошибку.

Error	 CS0103  The name 'i' does not exist in the current context

Язык C

  1. Глобальное ключевое слово Python
  2. Указатели C++ с примерами
  3. C Переменная, типы данных, константы
  4. Верилог Задания
  5. Моделирование уровня ворот
  6. Охват шкалы времени Verilog
  7. Java — типы переменных
  8. С — переменные
  9. C - Правила области применения
  10. C — указатели