VB.NET 2008/VB - 문법

문법 - 문법 구문에 제한을 두는 선언문

본클라쓰 2011. 4. 4. 12:00

 

Option 선언문

 

Option 선언문은 작성되는 코드에 기본 규칙을 구성하여 구문 오류와 논리 오류가 발생하지 않도록 문법 규칙을 제한하여 준수 할 수 있게 한다. Option 선언문을 사용하면 컴파일 시도 전에 오류가 출력되어 디버깅 시간을 줄일 수 있다.

 

 

· Explicit on 선언문

 

Option Explicit on 선언은 변수 선언을 반드시 해야 사용할 수 있게 문법을 제한한다. Option Explicit on 을 선언한 후 변수 선언 없이 사용할려고 하면 오류가 출력된다. 새로운 클래스나 폼은 생성될 때 Option 문이 보이지 않아도 Explicit 값은 on이며, 오류를 방지하기 위해서도 on 값을 사용해야 한다.

 

 

위 예제에서 보듯이 오류가 발생되면 오류 메시지는 'error BC30451: 'var2' 이름이 선언되지 않았습니다.' 라는 오류를 출력한다. 이 때 Explicit off로 변경하고 컴파일을 시도하면 오류가 발생되지 않은다. 이와 같이 변수의 선언을 명시적으로 지정하는 이유는 논리적인 오류나 구문 오류를 최소화하기 위한 방법이다. 변경을 원할 때는 클래스 선언 앞 부분에 지정할 수 있다.

 

 

 

· Strict on 선언문

 

데이터 형식을 다른 데이터 형식으로 변환할 때 특정 데이터 형식의 값의 정밀도가 낮거나 용량이 적은 데이터 형식으로 변환하면 데이터가 손실될 수 있다. 이러한 축소 변환이 실패하는 경우 런타임 오류가 발생한다. Strict on 선언문을 사용하면 이런 문제를 컴파일 타임에서 검출할 수 있다.

 

 

위 경우 Double 형 데이터를 Integer 형에 저장함으로써 소수점 이하의 데이터 손실이 발생한다. 따라서 컴파일 과정에서 다음과 같은 오류를 출력한다.

 

'error BC30512: Option Strict on에서는 'Double'에서 'Integer'(으)로 암시적으로 변환할 수 없습니다.'

 

 

 

· Compare 선언문

 

문자열 데이터를 비교할 때 사용할 기본 비교 메서드를 선언한다. 문자열의 정렬 순서를 지정하는 방법이지만 특별한 경우가 없다면 표준형을 따르는 것이 좋다.

 

 

 

 

imports 선언문

 

imports 선언문은 현재 프로젝트에서 참조하는 프로젝트 및 어셈블리에 정의된 네임스페이스 또는 프로그래밍 요소를 가져온다. 문법은 다음과 같다.

 

imports [aliasname = ] namespace.element

 

다음 코드는 Microsoft.VisualBasic.String 클래스를 가져온 다음 Left 메서드에 액세스하는데 사용할 수 있는 별칭 str을 할당한다.

 

Imports str = Microsoft.VisualBasic.Strings

 

Public Class Form1

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventsArgs) Handles MyBase.Load

        MsgBox(str.Left("Hello World", 5)

    End Sub

 

End Class

 

VB 프로젝트나 파일을 시작하고 코드 편집기를 열면 일부 코드가 이미 적절한 위치에 올바른 순서로 표시되어 있다. 보통 선언 부분은 'Option - Imports - Namespace' 순으로 작성해야 한다. 만약 다른 순서로 선언문을 사용하면 오류가 발생될 수도 있다.