1、方法作用域
直接在方法内部声明的变量,在声明之后的位置,方法内部都可以使用:
例如:
public class Program {
public static void Main(string[] args) {
int x = 100;
Console.WriteLine(x);
}
}
2、块作用域
代码块是指引用大括号{}之间的所有代码。在代码块中声明的变量只能在声明变量行后面的花括号之间的代码中访问:
例如:
public class Program {
public static void Main(string[] args) {
// 这里的代码不能使用x
{ // 代码块
// 这里的代码不能使用x
int x = 100;
// 这里的代码可以使用x
Console.WriteLine(x);
} // 代码块的结束
// 这里的代码不能使用x
}
}
代码块可以单独存在,也可以属于if
,while
或for
语句。 对于for
语句,在语句本身中声明的变量,也可以在块的作用域内使用。
3、类作用域
类级别的变量(字段)可以在整个类的所有方法中访问。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
class Program
{
int classLevelVar = 42; // 作用域是整个类
void ShowValue()
{
Console.WriteLine(classLevelVar); // ✅ 访问类变量
}
void AnotherMethod()
{
Console.WriteLine(classLevelVar); // ✅ 访问类变量
}
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.ReadKey();
}
}
}
4、命名空间作用域
在 同一命名空间内,可以访问命名空间内的所有类、接口、结构等。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
class ClassA
{
public static void PrintMessage() => Console.WriteLine("Hello from ClassA");
}
class ClassB
{
void CallClassA()
{
ClassA.PrintMessage(); // ✅ 访问同一命名空间下的类
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.ReadKey();
}
}
}
5、全局作用域(Global Scope, C# 10+)
在 C# 10 及以上版本中,可以使用 global using
定义全局 using
指令,使整个项目都可以访问。
// 在任何 .cs 文件中
global using System;//整个项目都能访问
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.ReadKey();
}
}
}