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

枚举非常好,只需使用不带 - 的名称。

于 2013-07-01T19:41:40.883 回答
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 回答