讓我用醫生來解釋我的問題。現在醫生有不同的專業領域,比如神經科醫生= 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唯一的整數值類型可以用作枚舉值。但是你可以稍後使用枚舉的常量名,或者寫一個簡單的轉換器 –