다음을 통해 공유


Visual Basic의 식

관리되는 식 계산기는 Visual Basic로 작성된 대부분의 식을 받아들입니다. 직접 실행 창에서 식 계산기는 한 줄로 된 문만 지원합니다.

다음 단원에서는 관련 정보를 제공하고 지원되지 않거나 부분적으로 지원되는 몇 가지 식 형식에 대해 설명합니다.

  • 캐스트

  • 동적 개체

  • 함수 실행

  • 식별자 및 형식

  • Import 별칭

  • 내장 형식을 포함하는 개체 변수

  • 연산자

  • 속성 확인

  • 문자열

  • TypeOf 연산자

  • 지원되지 않는 키워드

  • 변수 선언

  • WebMethod

Visual Basic에서는 데이터 형식의 내용을 의미 있는 형태로 표시하는 데 필요한 자동 확장 규칙을 지원하지 않습니다. 자세한 내용은 사용자 지정 데이터 형식의 요소 표시를 참조하십시오.

캐스트

단순 캐스트가 디버거에서 작동합니다.

A = CStr(B)

동적 개체

식 계산기는 정적으로 형식화된 변수를 동적인 것으로 계산할 수 있습니다. 또한 IDynamicObject 인터페이스를 구현하는 개체를 평가할 수도 있습니다. IDynamicObject 인터페이스를 구현하는 개체가 조사식 창에서 평가될 때 동적 뷰 노드가 추가됩니다. 동적 뷰 노드에서는 개체 멤버가 표시되지만 멤버의 값을 편집할 수는 없습니다.

동적 개체의 다음 기능은 지원되지 않습니다.

  • 복합 연산자 +=, -=, %=, /=, *=

  • 숫자 캐스트 및 형식 인수 캐스트를 비롯한 다양한 캐스트

  • 세 개 이상의 인수가 있는 메서드 호출

  • 세 개 이상의 인수가 있는 속성 getter

  • 여러 인수가 있는 속성 setter

  • 인덱서에 할당

  • 부울 연산자 && 및 ||

함수 실행

디버거는 오버로드된 함수를 비롯한 함수의 실행을 지원합니다. 따라서 다음 식 중 하나를 입력하면 디버거가 올바른 버전의 오버로드된 함수를 호출합니다.

myFunction (param1)

myFunction (param1, param2)

디버거에서 함수를 실행하면 해당 함수의 코드가 호출되어 실행됩니다. 함수에 메모리 할당이나 전역 변수의 값 변경과 같은 파생 작업이 있는 경우 디버거에서 해당 함수를 실행하면 프로그램의 상태가 변경되어 예기치 않은 결과가 생성될 수 있습니다.

오버로드된 함수에 중단점을 설정할 때는 함수를 지정하는 방법에 따라 중단점의 위치가 달라집니다. 함수 이름만 지정하는 경우 디버거는 해당 함수 이름의 각 오버로드에 하나의 중단점을 설정합니다. 전체 시그니처, 함수 이름 및 전체 인수 목록을 지정하는 경우 디버거는 지정된 오버로드에 하나의 중단점을 설정합니다.

식별자 및 형식

디버거 식에서는 현재 범위 내에 표시되는 모든 식별자를 사용할 수 있습니다. 예를 들어 디버거가 Magh 함수에서 중단되면 변수 이름 및 함수 이름을 포함하여 Magh 내에 표시되는 대부분의 식별자를 사용할 수 있습니다. 지역 상수는 지원되지 않습니다. 현재 범위 내에 표시되는 모든 변수의 값을 설정할 수 있습니다.

디버거는 기본 형식 또는 내장 형식의 모든 변수를 올바르게 표시할 수 있습니다. 클래스 형식 변수의 경우 디버거는 가장 많이 파생되는 형식을 기반으로 값을 올바르게 표시합니다. 예를 들어 Cat 형식에서 파생된 Lion 형식의 leo 개체가 있는 경우 leo.Clawlength를 계산하여 Lion 형식의 개체에 대한 올바른 값을 얻을 수 있습니다.

Import 별칭

디버거 창에서 import 별칭을 사용할 수 없습니다.

내장 형식을 포함하는 개체 변수

정수와 같이 내장 변수 형식을 포함하는 개체 변수는 예상과 다른 방식으로 표시되고 편집됩니다. 예를 들어 소스 코드에 다음과 같은 개체 변수가 있다고 가정합니다.

Dim obj As Object = 5

조사식 창에 obj 변수의 값이 다음과 같이 표시됩니다.

5 {Integer}

이 변수의 값을 6으로 변경하려면 다음과 같이 입력합니다.

6

다음과 같이 입력하지는 않을 것입니다.

6 {Integer}

값을 편집한 후 디버거에서 {Integer}가 자동으로 추가됩니다.

연산자

디버거는 다음과 같은 대부분의 연산자를 올바르게 계산합니다.

  • 산술 연산자: ( expr1+ expr2, expr1- expr2, expr1* expr2, expr1/ expr2, expr1\expr2, expr1^expr2 , expr1Modexpr2 )

  • 할당 연산자: ( var1= expr2, var1^= expr2, var1*= expr2, var1/= expr2, var1\= expr2, var1+= expr2, var1-= expr2, var1&= expr2)

  • 비교 연산자: (expr2< expr2, expr2<= expr2, expr1> expr2, expr1>= expr2, expr1= expr2, expr1<> expr2)

  • 연결 연산자: (expr1& expr2, expr1+ expr2)

  • 논리 연산자: (expr1And expr2, expr1Or expr2, expr1XOr expr2, expr1AndAlso expr2, expr1OrElse expr2, Notexpr1)

  • 단항 연산자: ( - expr1, Not expr1, GetType (type) )

속성 확인

디버거는 모든 변수 창에서 속성을 확인할 수 있습니다. 그러나 디버거에서 속성을 확인하면 프로그램 결과에 영향을 주는 변수 값 변경과 같은 의도하지 않은 결과가 나타날 수 있습니다. 실수로 속성을 확인하는 것을 방지하려면 옵션, 디버깅, 일반 대화 상자에서 속성 확인을 해제합니다.

문자열

Visual Basic에서는 다음과 같이 문자열에 대해 Length 연산자를 사용할 수 있습니다.

mystring.Length

또는

"hello world".Length

TypeOf 연산자

Visual Basic에서는 디버거 창에서 TypeOf 연산자를 사용할 수 있습니다.

TypeOf expression Is type

예를 들면 다음과 같습니다.

TypeOf Me Is Integer

false 값을 표시합니다.

TypeOf를 사용하는 경우 Is를 사용하는 식의 일부로 사용해야 합니다. Is 없이 TypeOf를 사용하는 경우 다음과 같은 오류 메시지가 나타납니다.

Is required

지원되지 않는 키워드

다음 Visual Basic 키워드는 디버거 창 식에서 지원되지 않습니다.

  • AddressOf

  • End

  • Error

  • Exit

  • Goto

  • On Error

  • Return

  • Resume

  • Select/Case

  • Stop

  • SyncLock

  • Throw

  • Try/Catch/Finally

  • With

또한 End Sub, Module 등의 네임스페이스 또는 모듈 수준 키워드도 지원되지 않습니다.

변수 선언

디버거 창에서는 새 변수를 명시적으로 선언할 수 없습니다.

그러나 직접 실행 창에서 암시적 변수에 값을 할당할 수는 있습니다. 이러한 암시적 변수의 범위는 디버거로 제한되고 디버거 외부에서 액세스할 수 없습니다. 예를 들어 o = 5 문은 새 변수 o를 암시적으로 만들고 이 변수에 5를 값으로 할당합니다. 디버거에서 형식을 유추할 수 없는 경우 이와 같은 암시적 변수의 형식은 Object입니다.

WebMethod

디버거 창에서는 WebMethod를 호출할 수 없습니다.

참고 항목

기타 리소스

디버거에서 사용하는 식

Visual Basic 언어 참조