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()
내에서 액세스했습니다. . 따라서 코드는 오류 없이 실행됩니다.
블록 내에서 변수를 선언할 때(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 언어
구성품 및 소모품 Arduino Nano R3 × 1 프리스케일 MPXV5010DP × 1 0.96 OLED 화면 × 1 MCP4725 DAC × 1 릴레이(일반) × 1 커패시터 1uf, .01uf, 470pf 모든 SMD × 1 플라스틱 투명 프로젝트 상자 110mm*85mm × 1 타이곤 튜빙 3/32 × 1 이 프로젝트 정보 섬프 레벨 모니터는 딸의 집이나 홈 모니터 프로젝트에
수평계는 목수, 건축업자, 심지어 집에 있는 사람들이 그림을 걸기 위해 사용하는 매우 오래된 도구로 직선 또는 수직선을 결정하는 데 도움이 됩니다. 수평 방식으로 하나를 정렬할 때 목표는 레벨 중앙에 있는 소량의 액체에 있는 거품이 두 라인 사이의 중앙에 있도록 하는 것이기 때문에 이를 버블 레벨이라고도 합니다. 이렇게 하면 선이 직선인지 여부를 상당히 정확하게 알 수 있습니다. 수평계 수직선을 측정하기 위한 수준기 유형도 있으며, 이는 다소 다른 표준에 따라 작동할 수 있습니다. 위에서 언급했듯이 정신 수준은 확실히 고대입니다.