医者を使って私の質問を説明させてください。現在、医師は、神経科医=0、腫瘍学者=1、心臓専門医=2、婦人科医=3 など、さまざまな専門分野を持っています。これらの専門分野の 1 つを整数として取得し、それをパラメーターとして保存されたデータベース内の手順:
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
}
さて、ここで私は、これらの専門分野を列挙内に持つべきか、それとも個別に宣言するべきかについて、一種のジレンマに陥っています。一見すると、「1つのことが複数の1つである可能性がある」場合にすぎないため、列挙型を使用する必要があるように感じますが、一方で、列挙型を使用すると、それをキャストする必要があることがわかります内部値を取得します。次に例を示します。
enum Speciality
{
Neurologist=0,
Oncologist=1,
Cardiologist=2,
Gynecologist=3
}
.............
Speciality spec=Speciality.Oncologist;
.............
DisplaySkills(int(spec));
わかりませんが、列挙型をキャストする必要があるのは完全に通常の慣行であり、プログラマーによって広く使用されているのかもしれませんが、パフォーマンスに影響を与えると思いました (目立つかどうかに関係なく)。