Прочитать на английском

Поделиться через


Преобразование типа "<type1>" в "type2>"< не может происходить в константном выражении, используемом в качестве аргумента атрибута

Выражение, используемое для аргумента атрибута, вычисляется как тип данных, отличный от типа соответствующего параметра атрибута, и Visual Basic не разрешает преобразование требуемого типа для аргументов атрибутов.

Атрибут содержит метаданные для элемента, к которому он применяется, и компилятор должен быть способен создать все метаданные во время компиляции. По этой причине каждый атрибут должен использовать значения, которые постоянны во время компиляции. Таким образом, каждый аргумент атрибута должен принимать постоянное значение во время компиляции.

Некоторые преобразования типов не создают значений, которые являются постоянными во время компиляции. Например, преобразование String в Double или в Date зависит от языковых стандартов, используемых во время выполнения. Другие преобразования, например из массива производного типа в массив типа Object, порождают различные ошибки, не допускающие их применения к аргументам атрибутов во время компиляции.

Идентификатор ошибки: BC30934

Исправление ошибки

  • Используйте выражение, результатом которого является тот же тип данных, что и у соответствующего параметра, который определяется атрибутом.

См. также