让我用医生来解释我的问题。现在医生有不同的专业领域,例如神经科医生=0,肿瘤科医生=1,心脏病科医生=2,妇科医生=3 等。假设我有一种方法,将这些专业之一作为整数并将其用作存储的参数数据库中的过程:
DisplaySkills(int speciality)
{
//create a connection to a database, refer to a stored procedure in the database;
//send "speciality" as an argument to that stored procedure
}
现在,在这里我有点进退两难,我是否应该在枚举中包含这些专业或单独声明它们。乍一看,我觉得我应该使用枚举,因为这只是“一个事物可以是多个事物之一”的情况,但另一方面事实证明,如果我使用枚举,那么我将不得不将其转换为得到它的内在价值。这是一个例子:
enum Speciality
{
Neurologist=0,
Oncologist=1,
Cardiologist=2,
Gynecologist=3
}
.............
Speciality spec=Speciality.Oncologist;
.............
DisplaySkills(int(spec));
我不知道,也许必须强制转换枚举是一种完全正常的做法,并且被程序员广泛使用,但我认为它会影响性能(无论是否明显)