ฉันกำลังสร้างแบบจำลองระบบเคมีและฉันมีปัญหากับการตั้งชื่อองค์ประกอบ / รายการของฉันภายใน Enum
ฉันไม่แน่ใจว่าฉันควรใช้:
- สูตรอะตอม
- ชื่อทางเคมี
- ชื่อทางเคมีแบบย่อ
ตัวอย่างเช่นกรดซัลฟูริกคือ H2SO4 และกรดไฮโดรคลอริกคือ HCl
ด้วยสองอย่างนั้นฉันอาจจะใช้สูตรปรมาณูเนื่องจากมันเป็นเรื่องธรรมดา
อย่างไรก็ตามฉันมีคนอื่น ๆ เช่นโซเดียม hexafluorosilicate ซึ่งก็คือ Na2SiF6
ในตัวอย่างที่สูตรอะตอมไม่เป็นที่เห็นได้ชัด (กับผม) myEnum.SodiumHexaFluoroSilicate
แต่ชื่อทางเคมีคือน่ากลัวยาว: ฉันไม่แน่ใจว่าฉันจะสามารถสร้างชื่อทางเคมีอย่างย่อได้อย่างปลอดภัยซึ่งจะมีรูปแบบการตั้งชื่อที่สอดคล้องกันอย่างไร
มีปัญหาสองสามข้อที่ฉันพยายามแก้ไขด้วยการตั้งชื่อองค์ประกอบ enum
วิธีแรกคือความสามารถในการอ่านโดยมีชื่อยาวกว่าที่แสดงถึงปัญหา
ข้อที่สองคือความง่ายในการหยิบรหัสสำหรับผู้ดูแลใหม่และที่นี่ชื่อที่สั้นกว่าจะแสดงปัญหา
ปัญหาต่อไปคือเจ้าของธุรกิจมักจะอ้างถึงชื่อเคมีแบบเต็ม แต่ไม่เสมอไป สารเคมี "คำหนึ่ง" ถูกอ้างถึงโดยสูตรของพวกเขา
ข้อกังวลสุดท้ายคือทำให้แน่ใจว่ามันสอดคล้องกัน ฉันไม่ต้องการใช้การตั้งชื่อแบบผสมเนื่องจากจะไม่สามารถจำได้ว่าควรใช้แบบใด
จากมุมมองการบำรุงรักษาตัวเลือกการตั้งชื่อใดที่คุณต้องการดูและเพราะเหตุใด
หมายเหตุ: ทุกอย่างที่นี่ด้านล่างบรรทัดเป็นส่วนเสริม | ชี้แจงวัสดุ โปรดอย่าจมดิ่งลงไป คำถามหลักเกี่ยวกับการตั้งชื่อวัตถุที่น่าอึดอัดใจ
ตัวเลือกอะตอม
สาธารณะ myEnum.ChemTypes { H2SO4, HCl, Na2SiF6 }
ตัวเลือกชื่อเคมี
สาธารณะ myEnum.ChemTypes { กรดซัลฟูริก, กรดไฮโดรคลอริก, SodiumHexafluorosilicate }
นี่คือรายละเอียดเพิ่มเติมบางส่วนจากความคิดเห็นในคำถามนี้:
- ผู้ชมสำหรับรหัสนั้นเป็นเพียงโปรแกรมเมอร์ไม่ใช่นักเคมี
- ฉันใช้ C # แต่ฉันคิดว่าคำถามนี้น่าสนใจกว่าเมื่อไม่สนใจภาษาการใช้งาน
- ฉันเริ่มต้นด้วย 10-20 สารประกอบและจะมีมากที่สุด 100 ชนิดดังนั้นผมจึงไม่จำเป็นต้องกังวลเกี่ยวกับทุกสารประกอบที่เป็นไปได้ โชคดีที่มันเป็นโดเมนที่ตายตัว
Enum ใช้เป็นกุญแจสำคัญในการค้นหาเพื่ออำนวยความสะดวกในการคำนวณทางเคมีทั่วไป / ทั่วไป - ซึ่งหมายความว่าสมการนั้นเหมือนกันสำหรับสารประกอบทั้งหมด แต่คุณแทรกคุณสมบัติของสารประกอบเพื่อทำให้สมการสมบูรณ์
- ตัวอย่างเช่นมวลโมลาร์ (เป็น g / mol) ถูกใช้เมื่อคำนวณจำนวนโมลจากมวล (หน่วยเป็นกรัม) ของสารประกอบ FWIW มวลโมลาร์ == น้ำหนักกราม
- อีกตัวอย่างหนึ่งของการคำนวณทั่วไปคือกฎของก๊าซในอุดมคติและการใช้ค่าคงที่ของก๊าซเฉพาะ
ฟังก์ชั่นตัวอย่างอาจมีลักษณะดังนี้:
ประชาชนสอง GetMolesFromMass (สองมวล _ กรัม, myEnum.ChemTypes chem) { double molarWeight = MolarWeightLookupFunctionByChem (เคมี); // คืนกรัม / โมล โมลคู่ = มวล / โมลาร์น้ำหนัก; // แปลงเป็นโมล ไฝกลับ } // ตัวอย่างการโทร: myMoles = GetMolesFromMass (1,000, myEnum.ChemTypes.Na2SiF6); //*หรือ* myMoles = GetMolesFromMass (1,000, myEnum.ChemTypes.SodiumHexafluorosilicate);
คู่สาธารณะ GetSpecificGravity (myEnum.ChemTypes chem, double conc) { // ดึงความถ่วงจำเพาะของสารประกอบทางเคมีตามความเข้มข้น sg สองครั้ง = SpecificGravityLookupTableByChem (เคมี, เข้มข้น); }
ดังนั้น enum ของชื่อสารประกอบจึงถูกใช้เป็นกุญแจสำคัญและเพื่อให้ความสอดคล้องในการอ้างอิงสารประกอบกับฟังก์ชันที่เกี่ยวข้อง
Substance
คุณสมบัติที่ต้องการ