WikiDer > Дискриминатор
эта статья может быть слишком техническим для большинства читателей, чтобы понять. Пожалуйста помогите улучшить это к сделать понятным для неспециалистов, не снимая технических деталей. (Октябрь 2011 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
В распределенных вычислений, а дискриминатор это поле типизированного тега, присутствующее в О, мой бог IDL размеченный союз определения типа и значения, определяющие, какой член объединения выбран в текущем экземпляре объединения.[1][2] В отличие от некоторых традиционных языков программирования, предлагающих поддержку объединений, дискриминатор в IDL не идентичен выбранному имени поля. Вот пример определения типа объединения IDL:
союз регистр переключатель (char) { кейс 'а': кейс 'b': короткая ТОПОР; кейс 'c': длинная EAX; по умолчанию: октет AL;};
Эффективная стоимость регистр Тип может содержать AX в качестве выбранного поля, но значение дискриминатора может быть либо «a», либо «b», и оно сохраняется в памяти отдельно. Следовательно, IDL логически отделяет информацию о текущем выбранном имени поля и действующем значении объединения от информации о текущем значении дискриминатора. В приведенном выше примере значение дискриминатора может быть любым из следующих: 'a', 'b', 'c', а также все другие символы, принадлежащие IDL. char
типа, так как по умолчанию
ветка указанная в примере регистр type также позволяет использовать остальные символы.
Другие языки
В Язык определения интерфейса Microsoft также поддерживает помеченные объединения, что позволяет выбирать дискриминатор через атрибут в ограждающей конструкции или функции.[3]
использованная литература
- ^ Спецификация CORBA / IIOP 3.0.3 В архиве 15 октября 2007 г. Wayback Machine, 12 марта 2004 г., OMG.org
- ^ CORBA 3.0 - Глава о синтаксисе и семантике IDL, 12 марта 2004 г., OMG.org
- ^ Документация по атрибутам дискриминатора Microsoft
Эта язык программирования-связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |