Можно использовать массив или хешировать с этой целью (в environment.rb):
OPTIONS = ['one', 'two', 'three']
OPTIONS = {:one => 1, :two => 2, :three => 3}
или альтернативно класс перечисления, который позволяет Вам перечислять по Вашим константам, а также ключам, раньше связывал их:
class Enumeration
def Enumeration.add_item(key,value)
@hash ||= {}
@hash[key]=value
end
def Enumeration.const_missing(key)
@hash[key]
end
def Enumeration.each
@hash.each {|key,value| yield(key,value)}
end
def Enumeration.values
@hash.values || []
end
def Enumeration.keys
@hash.keys || []
end
def Enumeration.[](key)
@hash[key]
end
end
, из которого можно тогда произойти:
class Values < Enumeration
self.add_item(:RED, '#f00')
self.add_item(:GREEN, '#0f0')
self.add_item(:BLUE, '#00f')
end
и использование как это:
Values::RED => '#f00'
Values::GREEN => '#0f0'
Values::BLUE => '#00f'
Values.keys => [:RED, :GREEN, :BLUE]
Values.values => ['#f00', '#0f0', '#00f']
Я думаю, что с на любой платформе лучше иметь ведущего разработчика, имеющего хоть какой-то опыт работы с ней. WPF - относительно новая платформа, поэтому найти ведущего разработчика, имеющего опыт работы с WPF, будет труднее.
Как веб-разработчик, вы можете лучше справиться с WPF, чем кто-то с опытом работы с WinForms, поскольку у вас не будет проблем со своим предубеждения относительно того, как лучше всего создать приложение для Windows. Несколько лет назад я брал уроки португальского языка и обнаружил, что мне было намного легче выучить язык, чем носителям испанского. Поскольку эти два языка очень похожи, они постепенно возвращались к испанскому.
Есть как различия, так и сходства на многих разных уровнях, но одно различие, которое я считаю очень важным, заключается в том, что веб-приложение основано на запросах по сравнению с характером окон с более сохранением состояния. Приложения. Я видел, как нескольким разработчикам (в основном тем, кто движется в противоположном направлении) было трудно понять это.
У меня нет опыта работы с WPF, но я хорошо разбираюсь в WinForms, и я также сделал несколько веб-приложений.
Самая большая разница между ними, по моему опыту , это знание того, как работает жизненный цикл формы, и способность различать идентичную терминологию с разными значениями (например, событие выгрузки формы). Я обнаружил, что это действительно сбивает с толку из-за фона WinForms.
Я работал с обоими и с точки зрения богатство и время разработки WinForms вытесняет Интернет из воды, особенно с учетом того, что такие технологии, как ClickOnce, значительно сокращают проблемы с развертыванием. С winforms вам нужно только кодировать платформу и не принимать во внимание огромное количество других факторов.
Весь запрос / ответ обычно, IMO, громоздок и иногда ненадежен, не говоря уже о растущем количестве поддерживаемых браузеров, меняющиеся стандарты разработки и кривой обучения жизненного цикла страницы, ну и, конечно же, растущая тенденция рекламы распространилась повсюду.
Однако то, что нам принесли веб-приложения, выходит за рамки того, на что WinForms может надеяться, поэтому, хотя есть кривая обучения и увеличенное время разработки, есть очевидные награды, которые можно пожинать.