다음 코드 줄을 사용하여 십진수가 같거나 같지 만 구문 오류가 있는지 확인하고 있습니다.일부 십진수 값이 같은지 확인하십시오.
if (ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_1 == ProgramVariables.MSR_AR_EB_2 == ProgramVariables.MSR_AR_EB_3)
올바른 방법은 무엇입니까?
다음 코드 줄을 사용하여 십진수가 같거나 같지 만 구문 오류가 있는지 확인하고 있습니다.일부 십진수 값이 같은지 확인하십시오.
if (ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_1 == ProgramVariables.MSR_AR_EB_2 == ProgramVariables.MSR_AR_EB_3)
올바른 방법은 무엇입니까?
그것은해야한다 :
if (ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_1
&& ProgramVariables.MSR_AR_EB_1 == ProgramVariables.MSR_AR_EB_2
&& ProgramVariables.MSR_AR_EB_2 == ProgramVariables.MSR_AR_EB_3)
당신은 A == B == C == D
을 단지 캔트. 당신은 너무처럼 &&
(AND) 연산자를 사용 할 수 있습니다
if (a == b && b == c && c == d && d == e)
{
// Do something
}
if a equals b AND b equals c AND c equals d AND d equals e then
을 의미합니다.
왜 이런 일이 발생합니까? equality operator은 같은 유형의 인수 두 개를 사용하기 때문입니다. a == b
이 부울 (true
또는 false
)이되고이 결과를 c
의 다음 값인 여전히 decimal
이고 비교 유형이 같지 않으므로 boolean
은 decimal
과 비교할 수 없습니다.
==
연산자는 이진 연산자이며 왼쪽에서 오른쪽으로 계산됩니다. 이는 평가 수단 제
(true or false) == ProgramVariables.MSR_AR_EB_2
비교된다
ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_1
(true or false) == ProgramVariables.MSR_AR_EB_3
호환되지 않는 유형의 값을 비교하기 때문에 오류가 발생합니다.
여러 값을 비교하는 올바른 방법이
if (ProgramVariables.MSR_AR_System.Equals(ProgramVariables.MSR_AR_EB_1).Equals(ProgramVariables.MSR_AR_EB_2.Equals(ProgramVariables.MSR_AR_EB_3)))
를 들어, 논리적 &&
(과) 운영자에 의해, 즉 진정한 그들을 결합하는 것입니다 또는 거짓. 따라서 첫 번째 비교는 부울 값을 반환하고 10 진수와 비교합니다. 따라서 오류.
비교 연산자의 반환 부울 값을 시도 예를
if (ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_1
&& ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_2
&& ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_3)
당신은이 같은 방법을 쓸 수 있습니다 : 내가 이해한다면 (당신의 의도를 표현하는 몇 가지 브라케팅으로
if (AllEqual(ProgramVariables.MSR_AR_System,
ProgramVariables.MSR_AR_EB_1,
ProgramVariables.MSR_AR_EB_2,
ProgramVariables.MSR_AR_EB_3))
, 합법적 것, 그러나 :
을 그리고 모든 값을 비교하는 데 사용 귀하의 의도가 올바르게). '((Sys == 1) == (2 == 3))'을 실행했다면 컴파일 될 것이지만 네 개의 변수가 모두 동등하다는 것을 보장하지는 않을 것입니다. –