0

メディアを検出して整数で応答する CD/DVD ライブラリがあります。整数の値は、CD、DVD、または BRD などのメディアのタイプを決定します。

列挙型を使用して、整数値を列挙値に一致させることを考えていました。私はそれが正しく機能するとは思わない

enum discTypes { UNKNOWN, CD-R, CD-RW, DVD-R, DVD-RW }; 

しかし、それを行うより良い方法は、値の配列を作成してそれを返すことだと思いますか?

QString discTypes[5] { UNKNOWN, CD-R, CD-RW, DVD-R, DVD-RW }; 

私はちょっとチャイムを鳴らしてくれる人を探していました=)~私はより良い解決策も受け入れています。

4

2 に答える 2

1

あなたはとても近くにいます。列挙値に整数を割り当てると、よりきれいに収まります。

enum discTypes { 
    UNKNOWN = 123, 
    CD_R = 234, 
    CD_RW = 52,
    DVD_R = 83, 
    DVD_RW = 934 
};

次に、コードで:

diskTypes d = (diskTypes) GetValueFromMedia();
switch (diskTypes)
{
    case CD_R:
        // do something
        break;
}

ここでの唯一の問題GetValueFromMedia()は、無効な値を返す場合です。それを確認する自動化された方法はありません。

于 2013-07-01T19:54:20.910 に答える
1

列挙型はまったく問題ありません。- なしで名前を使用するだけです。

于 2013-07-01T19:41:40.883 に答える