让我用医生来解释我的问题。现在医生有不同的专业领域,比如神经科医生= 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
}
现在,在这里我左右为难我有点是否我应该有一个枚举里面那些专业或seperately申报。从第一眼看来,感觉就像我应该使用枚举,因为它只是“一件事物可以是其中之一”的情况,但另一方面,事实证明,如果我使用枚举,那么我将不得不将它投射到获得其内部价值。这里有一个例子:
enum Speciality
{
Neurologist=0,
Oncologist=1,
Cardiologist=2,
Gynecologist=3
}
.............
Speciality spec=Speciality.Oncologist;
.............
DisplaySkills(int(spec));
我不知道,也许有投枚举是一个完全正常的做法,由程序员被广泛使用,但我认为它会影响性能(无论是明显与否)
我完全同意将上述方法传递给任何整数的可能性,并将名称更改为更像英语。 –
而且,如果想让常量不是整型而是字符串呢?枚举仍然可以用于这个目的,或者常量是唯一的方法吗? –
@MikeJM唯一的整数值类型可以用作枚举值。但是你可以稍后使用枚举的常量名,或者写一个简单的转换器 –