亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
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";

这里,str 是一个方法级别的变量。因此,它不能在 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. Verilog 作业
  5. 门级建模
  6. Verilog 时间刻度范围
  7. Java - 变量类型
  8. C - 变量
  9. C - 范围规则
  10. C - 指针
  11. C - 变量参数
  12. C++ 变量类型