때로는 클래스를 더 잘 처리하기 위해 더 많은 속성이 필요할 수 있습니다. 예를 들어 기업 고객, 대규모 고객, 소규모 고객, 신규 고객 유형 등 네 가지 고객 그룹이 있거나 플로피, 하드 드라이브, 네트워크라는 세 가지 검색 방법을 사용하는 검색 클래스가 있다고 가정해 보겠습니다. 그렇다면 해당 속성을 자신이 이해할 수 없는 숫자나 텍스트로 설정하는 것보다 옵션 목록에서 하나를 선택하는 것이 더 좋지 않을까요?
내 생각에 대답은 '그렇다'이다. 이런 종류의 처리를 "열거"라고 부르기 때문입니다.
이전 섹션의 프로젝트를 열고 코드를 추가해 보겠습니다.
CDog 클래스에 다음 코드를 추가합니다.
"Enum" 키워드는 열거형을 정의하는 데 사용됩니다. 즉, 가능한 옵션의 목록입니다. 각 옵션에는 해당 숫자가 있습니다. 즉, BigAndShaggy는 1, ShortCrewCut은 2 등입니다.
열거 항목에 대한 정보를 데이터베이스에 추가할 때 해당 값이 매우 유용하다는 점에 유의해야 합니다. "BigAndShaggy"는 실제로 값 1을 나타내므로 데이터베이스의 숫자 필드에 직접 삽입할 수 있습니다. 이는 문자열을 사용하여 데이터베이스를 쉽게 유지할 수 있음을 의미합니다.
이제 Dog's Coat 유형 목록을 만들고 다른 속성을 정의하여 이러한 유형을 CDog 클래스에 추가해 보겠습니다.
클래스에서 다음 변수를 선언합니다.
PRivateudtCoatAsCoatType
이 정의된 개인 변수는 추가될 Coat 유형 속성을 저장하는 데 사용됩니다. udtCoat 변수는 문자열도 정수도 아니지만 자체 정의된 열거 유형 CoatType입니다.
CDog 클래스가 열리면 "도구" 메뉴에서 "AddProcedure" 명령을 선택하면 해당 대화 상자가 나타납니다.
이름 편집 상자에 Coat를 입력합니다.
"속성" 옵션 버튼을 체크하고 [확인]을 클릭하세요.
시스템은 다음 코드 프레임워크를 자동으로 생성합니다.
그러나 이것은 우리에게 필요한 프레임워크가 아닙니다. 코드에서 "Variant" 변수 유형은 모든 유형의 데이터를 수신하고 처리할 수 있습니다. 우리가 정의한 CDog 클래스에서 마지막 특성은 Age이며 정수만 허용할 수 있습니다. 그러나 이제 속성은 CoatType 목록의 데이터 유형을 수신할 수 있어야 하므로 다음과 같이 수정해야 합니다.
생성된 코드의 모든 "Variant"를 "CoatType"으로 변경합니다.
그런 다음 실제로 속성을 처리하는 일부 코드를 추가합니다.
속성의 Get 프로시저에 다음 코드를 추가합니다.
속성의 Let 프로시저에 다음 코드를 추가합니다.
Form1로 전환하십시오.
명령 단추의 코드를 다음과 같이 변경합니다.
이제 입력을 시작하세요: MyDog.Coat=
"=" 키를 누르면 마법 같은 일이 일어나며, 가능한 옵션 목록이 나타나며, 그 중에서 하나를 선택할 수 있습니다.
코드 입력을 완료하세요: MyDog.Coat=ShortCrewCut
다음으로 Coat 속성의 값을 가져옵니다. 이제 단순히 메시지 대화 상자에 속성 값을 표시했다면 선택 항목의 값만 반환하면 됩니다. 예를 들어 ShortCrewCut을 선택한 경우 해당 속성은 2를 반환해야 합니다. 믿을 수 없다면 시도해 볼 수 있습니다!
그러나 여기 또 다른 방법이 있는데, 이는 If-Then 문을 사용하여 Coat를 결정하는 것입니다.
명령 단추의 기존 코드 뒤에 다음 코드를 추가합니다.
여기의 코드는 단순히 Coat 속성 값을 결정하고 해당 메시지 대화 상자를 표시합니다. 물론 여기서는 "SelectCase" 문을 사용할 수도 있습니다.
마지막으로 컴퓨터 메모리를 확보하기 위해 마지막 문 하나를 추가합니다.
명령 단추의 기존 코드 뒤에 다음 코드를 추가합니다.
F5 키를 눌러 프로그램을 실행하고 명령 단추를 클릭하여 테스트해 보세요.
결과는 어땠나요? ->