Я сделал следующее (опрометчиво) Enum:
Public Enum gtUnaryOperator
[CBool]
[CByte]
[CCur]
[CDate]
[CDbl]
[CDec]
[CInt]
[CLng]
[CLngPtr]
[CSng]
[CStr]
[CVar]
[CVDate]
[CVErr]
End Enum
... с именами всех функций преобразования типов, экранированных в []
квадратных скобках. Это прекрасно компилируется, и я могу ссылаться на эти члены перечисления в коде (при условии, что я их избегаю - например, ?[CCur]
напечатает 2
в ближайшем окне)
Однако я не могу использовать [CByte]
в точно так же - все остальные работают, но ввод ?[CByte]
в ближайшем окне дает
Ошибка компиляции, ожидаемая "("
Я пытался Прочитайте спецификацию языка 3.3.5.3 Специальные формы идентификаторов для ответов, но это немного плотно (или, может быть, я), и в любом случае ничего не выскакивает в качестве объяснения.
Примечание: полностью уточняется :
gtUnaryOperator.[CByte]
... работает нормально, но я не понимаю, почему это необходимо
Любая причина, по которой CByte должен отличаться от других - я в курсе это не просто обычная функция, но рассматривается как ключевое слово языка (в отличие от VBA.CByte), но и все остальные функции преобразования типов (попробуйте изменить цвета текста).
Так что я действительно в растерянности!