Я моделюю хімічну систему, і у мене виникають проблеми з називанням моїх елементів / предметів в межах enum.
Я не впевнений, чи варто використовувати:
- атомна формула
- хімічна назва
- скорочена хімічна назва.
Наприклад, сірчаною кислотою є H2SO4, а соляна кислота - HCl.
З цими двома, я, мабуть, просто використовую атомну формулу, оскільки вони досить поширені.
Однак у мене є інші, як гексафторсилікат натрію, який є Na2SiF6.
У цьому прикладі, атомна формула не настільки очевидна (для мене) , але хімічна назва потворно довго: myEnum.SodiumHexaFluoroSilicate
. Я не впевнений, яким чином я міг би безпечно придумати скорочене хімічне ім’я, яке б мало послідовний зразок іменування.
Є кілька проблем, які я намагаюся вирішити, називаючи елементи enum.
Перший - читабельність, і довші назви представляють проблему.
Друге - це легкість підбору коду для нових технічних засобів, і тут більш короткі назви представляють проблему.
Наступне питання полягає в тому, що власники підприємств зазвичай посилаються на повну хімічну назву, але не завжди. "Ротові" хімічні речовини називають їх формулою.
Останнім питанням є забезпечення його послідовності. Я не хочу змішаної конвенції про іменування, оскільки буде неможливо запам'ятати, яку використовувати.
З точки зору технічного обслуговування, який із варіантів називання ви б хотіли бачити і чому?
Примітка: Все, що знаходиться нижче рядка, додаткове | уточнюючий матеріал. Будь ласка, не занурюйтесь у це. Основне питання стосується називання незручних об'єктів.
Атомний варіант
загальнодоступні myEnum.ChemTypes { H2SO4, HCl, Na2SiF6 }
Хімічна назва Варіант
загальнодоступні myEnum.ChemTypes { Сірчана кислота, Хлористого-воднева кислота, Натрій гексафторосилікат натрію }
Ось кілька додаткових деталей із коментарів до цього питання:
- Аудиторію за кодом будуть просто програмісти, а не хіміки.
- Я використовую C #, але я вважаю, що це питання цікавіше при ігноруванні мови реалізації.
- Я починаю з 10 - 20 сполук і мав би щонайменше 100 сполук, тому мені не потрібно турбуватися про кожен можливий склад. На щастя, це фіксований домен.
Перелік використовується як ключ для пошуку для полегшення загальних / загальних хімічних обчислень - це означає, що рівняння однакове для всіх сполук, але ви вставляєте властивість сполуки закінчувати рівняння.
- Наприклад, Молярна маса (в г / моль) використовується при обчисленні кількості молей від маси (в грамах) сполуки. FWIW, Молярна маса == Молярна вага.
- Іншим прикладом загального розрахунку є Закон про ідеальний газ та його використання Конкретної газової константи
Зразок функції може виглядати так:
публічний подвійний GetMolesFromMass (подвійний mass_gram, myEnum.ChemTypes chem) { подвійний molarWeight = MolarWeightLookupFunctionByChem (хімічний); // повертає грам / моль подвійні молі = маса / молярна вага; // перетворюється на кротів зворотні родимки; } // Зразок виклику: myMoles = GetMolesFromMass (1000, myEnum.ChemTypes.Na2SiF6); // * або * myMoles = GetMolesFromMass (1000, myEnum.ChemTypes.SodiumHexafluorosilicate);
публічний подвійний GetSpecificGravity (myEnum.ChemTypes chem, подвійний конц) { // отримує питому вагу хімічної сполуки на основі концентрації подвійний sg = SpecificGravityLookupTableByChem (chem, conc); }
Отже, enum імені сполуки використовується як ключовий і для забезпечення узгодженості у посиланні сполуки на пов'язані функції.
Substance
будь-яких властивостей, які їм потрібні.