Я хочу иметь каталог постоянных материалов, чтобы я мог использовать код, который выглядит следующим образом:
Dim MyDensity, MySymbol
MyDensity = ALUMINUM.Density
MySymbol = ALUMINUM.Symbol
Очевидно, что плотность и символ для алюминия не должны изменяться, поэтому я хочу, чтобы они были постоянными, но мне нравится точечная запись для простоты.
Я вижу несколько вариантов, но они мне не нравятся.
-
Создайте константы для каждого свойства каждого материала. Это выглядит как слишком много констант, поскольку у меня может быть 20 материалов с 5 свойствами.
Const ALUMINUM_DENSITY As Float = 169.34 Const ALUMINUM_SYMBOL As String = "AL"
-
Определите перечисление со всеми материалами и создайте функции, которые возвращают свойства. Не так очевидно, что плотность постоянна, поскольку ее значение возвращается функцией.
Public Enum Material MAT_ALUMINUM MAT_COPPER End Enum Public Function GetDensity(Mat As Material) Select Case Mat Case MAT_ALUMINUM GetDensity = 164.34 End Select End Function
Не похоже, что Const Structs или Const Objects решат эту проблему, но, возможно, я ошибаюсь (их даже нельзя допустить). Есть ли способ лучше?