Одной из возможностей является создание класса с «перечислениями», определенными как инвариантные члены класса, с помощью метода :: GetValue () и математических операций, которые вам нужно использовать перегруженными, чтобы использовать GetValue () для выполнения рассматриваемой математики. .