Visual Basic 6.0 사용자를 위한 클래스
업데이트: 2007년 11월
클래스는 개체 지향 응용 프로그램의 빌딩 블록입니다. 또한 클래스는 시스템의 개체를 나타내는 프로그래밍 구문입니다. 응용 프로그램을 디자인하려면 관련 개체, 개체에 포함된 정보 및 개체로 수행 가능한 작업을 디자인해야 합니다. 클래스와 개체 지향 프로그래밍에 대한 자세한 내용은 Visual Basic의 개체 지향 프로그래밍을 참조하십시오.
클래스 모듈
Visual Basic 6.0
Visual Basic 6.0에서는 클래스 모듈을 통한 클래스 정의를 지원합니다. 클래스 정의는 특수 파일 형식인 .cls 파일로 저장됩니다. 클래스는 각 클래스 모듈에 하나씩 정의됩니다. 일부 클래스 정의는 .cls 파일에 포함되어 프로젝트 시스템을 통해서만 편집할 수 있습니다.
Visual Basic 2008
Visual Basic 2008에서는 파일 이름이 아니라 Class 문(Visual Basic)으로 클래스가 정의됩니다. Visual Basic 2008에서는 클래스가 소스 코드 파일인 .vb 파일에 정의됩니다. 여러 클래스를 하나의 파일에 정의할 수 있습니다. 전체 클래스 정의는 소스 코드에 일반 텍스트로 표시됩니다.
전역 클래스
Visual Basic 6.0
Visual Basic 6.0에서 새 클래스를 만들 때는 Instancing 속성에 대해 GlobalSingleUse 및 GlobalMultiUse 값을 사용할 수 있습니다. 이것은 다른 구성 요소가 공유 멤버인 것처럼 새 클래스의 속성과 메서드를 호출할 수 있음을 나타냅니다. 클래스의 인스턴스는 해당 멤버 중 하나가 처음에 호출될 때 암시적으로 만들어집니다.
Visual Basic 2008
Visual Basic 2008에서는 Instancing 속성을 지원하지 않습니다. Visual Basic 2008에서는 표준 모듈 멤버를 노출하도록 허용하여 동일한 기능을 제공합니다. Imports 문을 사용하여 클래스의 공유 속성 및 메서드에 액세스할 수 있습니다. Public 클래스 액세스와 적절한 생성자 액세스를 사용하여 GlobalMultiUse의 효과를 얻을 수 있습니다.
데이터 클래스
Visual Basic 6.0
Visual Basic 6.0에서는 데이터 소스 및 복합 데이터 소비자 클래스도 지원합니다.
Visual Basic 2008
Visual Basic 2008에는 이 클래스에 직접 해당하는 클래스가 없습니다. 데이터를 조작하는 클래스에 대한 자세한 내용은 방법: 개체의 데이터에 연결을 참조하십시오.
기본 멤버
Visual Basic 6.0
Visual Basic 6.0에서는 특정 메서드나 데이터 멤버가 클래스의 기본 멤버가 되도록 지정할 수 있습니다.
Visual Basic 2008
Visual Basic 2008에서는 하나 이상의 인수를 사용하는 속성만 클래스나 구조체의 기본 멤버가 될 수 있습니다. 따라서 다른 프로그래밍 언어와의 상호 운용성이 유지될 수 있습니다. 자세한 내용은 방법: Visual Basic에서 기본 속성 선언 및 호출을 참조하십시오.
개체 수명
Visual Basic 6.0
개체 수명은 개체 인스턴스를 만들고 종료하는 것으로 결정됩니다. 개체를 만든 시간은 개체를 선언한 프로그램에서 결정하지만 종료 시간을 결정하는 데는 보다 복잡한 메커니즘이 사용됩니다.
Visual Basic 6.0에서는 개체 인스턴스마다 참조 횟수가 유지됩니다. 개체에 대한 마지막 참조가 해제되어 횟수가 0이 되면 개체가 즉시 종료됩니다.
Visual Basic 2008
Visual Basic 2008에서는 마지막 참조가 해제되는 즉시 소멸자가 호출되는 것은 아닙니다. 그 이유는 공용 언어 런타임이 개별 참조 횟수 대신 참조 트리를 관리하기 때문입니다. 가비지 수집기는 백그라운드에서 참조 트리를 추적합니다. 현재 실행 중인 코드에서 참조가 없는 개체 또는 개체 그룹을 찾으면 이러한 모든 개체의 소멸자가 호출됩니다. 이 소멸자의 순서나 가비지 수집기가 참조 트리를 추적하는 데 걸리는 시간은 예측할 수 없습니다. 따라서 개체의 수명은 결정되지 않은 상태입니다. 자세한 내용은 개체 수명: 개체가 만들어지고 소멸되는 방법 및 가비지 수집을 참조하십시오.
업그레이드 옵션
업그레이드 마법사에서는 코드 변경을 최소화하여 클래스 모듈을 간단하게 업그레이드합니다. 위에 나열된 변경 사항 이외에도 Visual Basic 프로그래머는 개체 지향 프로그래밍과 관련된 새롭고 다양한 구문을 선택하여 사용할 수 있습니다. 다음은 몇 가지 예입니다.
생성자 생성자는 Visual Basic 6.0의 Class_Initialize 사용을 대체합니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 Class_Initialize 변경 사항을 참조하십시오.
인덱싱된 기본 속성 인덱싱된 기본 속성은 .NET Framework에서 컬렉션 항목에 액세스하는 데 광범위하게 사용됩니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 기본 속성 변경 사항을 참조하십시오.
ReadOnly Visual Basic 6.0에서는 Get 프로시저가 없는 경우 속성은 암시적으로 읽기 전용입니다. Visual Basic 2008에서는 이 동작을 명시적으로 선언하려면 ReadOnly 키워드가 필요합니다. 자세한 내용은 Property 문을 참조하십시오.
런타임에 바인딩 Visual Basic 6.0에서는 기본적으로 런타임에 바인딩을 제공하므로 Option Strict를 Off로 설정하면 오류 없이 코드를 업그레이드할 수 있습니다. Option Strict를 On으로 변경하면 컴파일 타임에 형식 안전성이 적용되지만 대신 컴파일하는 동안 런타임에는 발생하지 않는 사소한 오류가 발생할 수 있습니다. 자세한 내용은 Option Strict 문을 참조하십시오.
메서드 오버로딩 메서드 오버로딩은 클래스의 명명된 멤버 수를 줄여 줍니다. 이를 통해 클래스를 더 쉽게 읽을 수 있으므로 보다 쉽게 프로그래밍할 수 있습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 프로시저 변경 사항을 참조하십시오.
파일 이름 Visual Basic 6.0에서는 클래스 이름과 파일 이름이 같아야 합니다. Visual Basic 2008에서는 프로그래머가 클래스 이름과 파일 이름을 모두 제어하며 소스 파일 하나에 여러 클래스를 정의할 수 있습니다. 파일 하나에 포함시킬 수 있는 클래스 수는 코딩 표준에 명시되어 있습니다.
ByRef Visual Basic 6.0에서는 매개 변수에 대한 기본값으로 ByRef를 사용하므로 ByRef로 업그레이드하는 것이 가장 좋습니다. 자세한 내용은 ByVal을 참조하십시오.
Return 키워드 Visual Basic 6.0에서는 함수 이름을 변수로 사용하여 함수 값을 반환합니다. Visual Basic 2008에서는 함수 값 반환을 위해 명시적 Return 키워드를 제공합니다. 자세한 내용은 Return 문(Visual Basic)을 참조하십시오.
연산자 오버로드 이제는 사용자가 정의하는 클래스에 대해 더하기(+), 빼기(-) 및 기타 연산자를 정의할 수 있습니다. 자세한 내용은 Operator 문을 참조하십시오.
새 연산자 += 연산자를 사용하면 코드 줄을 단축하여 단순화할 수 있습니다. 자세한 내용은 산술 연산자(Visual Basic)를 참조하십시오.
새 값의 인라인 정의 Visual Basic 2008의 구문을 사용하면 새 변수 값을 코드 한 줄로 모두 선언하고 설정할 수 있습니다. 즉, 개체가 인스턴스화된 후부터 데이터 제약 조건을 적용할 수 있습니다. 자세한 내용은 Dim 문(Visual Basic)을 참조하십시오.
코드를 다시 작성하면 오류가 발생할 수 있습니다. 코드를 변경할 때마다 테스트를 다시 해야 합니다. 또한 Visual Basic 2008의 일부 키워드는 Visual Basic 6.0에서와 동일하게 동작하지 않습니다. 자세한 내용은 이전 버전의 Visual Basic에서 만든 응용 프로그램 업그레이드를 참조하십시오.
참고 항목
개념
Visual Basic 6.0 사용자를 위한 Class_Initialize 변경 사항
참조
'ByVal'과 'ByRef'는 함께 사용할 수 없습니다.