2011-02-13 1 views
2

코드에서이 기능이 작동하지 않는 이유는 무엇입니까?Visual Basic 2008에서 두 개의 등호 사용

intMax = intTopValue = 20 
+0

헝가리 표기법을 사용하지 않았습니다. 변수 이름에'int'를 넣지 마십시오. – SLaks

+1

@SLaks 헝가리 표기법에 실제 문제가 있습니까? 이것이 단순히 종교 갈등의 또 다른 문제일까요? –

+0

@nick - 헝가리 표기법은 모든 .NET 개발에 대해 눈살을 찌푸 릅니다 : http://blogs.msdn.com/b/brada/archive/2005/01/26/361363.aspx의 섹션 2.6 참조 - VB.NET에서도 . – Kev

답변

7

이것은 intMax = (intTopValue = 20)으로 해석됩니다.

intTopValue = 20intTopValue20과 같은지 확인하고 true 또는 false를 반환합니다.
이 부울은 intMax에 할당됩니다. 그들이 할당 (= 또는 :=)와 평등 (== 또는 =)에 대해 별도의 연산자를 사용하기 때문에

대부분의 언어에서는이 문제가 발생하지 않습니다.

대조적으로 VB는 두 작업 모두에 대해 =을 공유합니다. 따라서 a = b이 표현식으로 작성되면 항상 동등 함을 의미합니다.

+0

저는 초보자입니다. 그래서 이것을 이해하려고 합니다만, VB는 방정식의 왼쪽을 해답으로, 방정식의 수식 자체를 오른쪽으로 읽습니다. 두 개의 등호는 VB에게 intMax가 선언되지 않은 변수와 같다고 말했습니다. –

+0

당신이 무슨 말을하는지 잘 모르겠습니다. 이것을 방정식으로 생각하지 마십시오. _assignment_는 표현식에'intMax'를 할당합니다. – SLaks

+0

오, 알았어 ... 그게 더 이해가된다. 추가 할 것이 있다면 그 점을 고맙게 생각합니다. –