クラスをより適切に処理するために、より多くの属性が必要になる場合があります。たとえば、法人、大規模、小規模、新規顧客タイプの 4 つの異なる顧客グループ、または 3 つの異なる検索方法 (フロッピー、ハード ドライブ、ネットワーク) を使用する検索クラスがあるとします。したがって、理解できない数字やテキストを使用して関連するプロパティを設定するのではなく、オプションのリストから 1 つを選択する方がよいのではないでしょうか?
答えは「はい」だと思います。このような処理を「列挙」と呼ぶためです。
前のセクションのプロジェクトを開いて、コードを追加しましょう。
次のコードを CDog クラスに追加します。
キーワード「Enum」は列挙を定義するために使用されます。言い換えれば、それは可能なオプションのリストです。各オプションには対応する番号があり、BigAndShaggy は 1、ShortCrewCut は 2 などとなります。
列挙項目に関する情報をデータベースに追加する場合、対応する値が非常に役立つことに注意してください。 「BigAndShaggy」は実際には値 1 を表すため、データベースの数値フィールドに直接挿入できます。これは、文字列を使用してデータベースを簡単に保守できることを意味します。
そこで、Dog's Coat タイプのリストを作成し、これらのタイプを CDog クラスに追加する別の属性を定義しましょう。
クラス内で次の変数を宣言します。
PRivateudtCoatAsCoatType
この定義されたプライベート変数は、追加される Coat タイプ属性を保存するために使用されます。udtCoat 変数は文字列でも整数でもなく、独自に定義された列挙型 CoatType であることに注意してください。
CDog クラスを開いたら、[ツール] メニューの [AddProcedure] コマンドを選択すると、対応するダイアログ ボックスがポップアップ表示されます。
名前編集ボックスに「Coat」と入力します。
「プロパティ」オプションボタンにチェックを入れ、「OK」をクリックします。
システムは次のコード フレームワークを自動的に生成します。
しかし、これは私たちが必要とする枠組みではありません。コードでは、「Variant」変数タイプは任意のタイプのデータを受信して処理できます。私たちが定義した CDog クラスでは、最後の属性は Age であり、整数のみを受け入れることができます。ただし、属性は CoatType リストのデータ型を受け取ることができる必要があるため、次の変更を行う必要があります。
生成されたコード内のすべての「Variant」を「CoatType」に変更します。
次に、実際にプロパティを処理するコードを追加します。
プロパティの Get プロシージャに、次のコードを追加します。
プロパティの Let プロシージャに、次のコードを追加します。
Form1 に切り替えます。
コマンド ボタンのコードを次のように変更します。
MyDog.Coat= と入力してください。
「=」キーを押すと魔法が起こり、可能なオプションのリストが表示され、その中から 1 つを選択できます。
コードの入力を完了します: MyDog.Coat=ShortCrewCut
次に、Coat プロパティの値を取得します。メッセージ ダイアログ ボックスにプロパティ値を単に表示する場合は、単に選択範囲の値を返すだけです。たとえば、ShortCrewCut が選択されている場合、そのプロパティは 2 を返す必要があります。信じられないなら、試してみてもいいでしょう!
ただし、ここでは、If-Then ステートメントを使用してコートを決定する別の方法があります。
コマンド ボタンの既存のコードの後に次のコードを追加します。
ここのコードは単に Coat プロパティ値を決定し、対応するメッセージ ダイアログ ボックスを表示します。もちろん、ここでも「SelectCase」ステートメントを使用できます。
最後に、コンピューターのメモリを解放するための最後のステートメントを 1 つ追加します。
コマンド ボタンの既存のコードの後に次のコードを追加します。
F5 キーを押してプログラムを実行し、コマンド ボタンをクリックしてテストします。
結果はどうなりましたか? ->