을 사용할 때마다 'foo'는 어떻게 설정됩니까? 나는 온라인 검색 한하지만 난 나에게 답을주는 그 어디서든 찾을 수 없습니다 : == 대신 부울 표현식 =의아래의 예제에서 C# 부울 표현
static void Main(string[] args) {
static public bool abc = true;
static public bool foo = (abc = false);
foo = (abc = true);
}
을 사용할 때마다 'foo'는 어떻게 설정됩니까? 나는 온라인 검색 한하지만 난 나에게 답을주는 그 어디서든 찾을 수 없습니다 : == 대신 부울 표현식 =의아래의 예제에서 C# 부울 표현
static void Main(string[] args) {
static public bool abc = true;
static public bool foo = (abc = false);
foo = (abc = true);
}
false
처음으로 true
두 번째로. =
은 할당 연산자입니다. 두 번째 피연산자의 값을 첫 번째 피연산자에 할당 한 다음이 값을 반환합니다. 예를 들면 :는
int foo = 1;
int bar = (foo = 2);
번째 라인은 여기에 2 foo
다음 줄에 2를 할당하는 다른 할당 연산자, 2를 반환 할당한다. 모든의 끝에서, 모두 foo
및 bar
는 값이 2
편집 :은 체인까지 할당 작업에 유효한 이유 이것은; 예 :
int foo;
int bar;
foo = bar = 2; // Equivalent to foo = (bar = 2);
정적 변수 정의는 메소드 내부가 아니라 클래스 레벨에 배치해야합니다. 이 경우 intializer는 소스 코드에 정의 된 순서대로 실행됩니다.
이것은 abc가 먼저 true로 설정된 다음 abc가 true이므로 foo가 false로 설정됨을 의미합니다.
이러한 상황에서는 코드를 실행하고 확인하는 것이 쉽습니다. – Ant
검색하려는 장소는 사양의 섹션 7.16.1입니다. –