Konwersja z "<type1>" na "<type2>" nie może wystąpić w wyrażeniu stałym używanym jako argument atrybutu

Wyrażenie używane dla argumentu atrybutu oblicza typ danych inny niż odpowiadający mu parametr atrybutu, a Visual Basic nie zezwala na wymaganą konwersję typu dla argumentów atrybutów.

Atrybut udostępnia metadane elementu, do których jest stosowany, a kompilator musi mieć możliwość konstruowania wszystkich metadanych w czasie kompilacji. Z tego powodu każdy atrybut musi używać wartości, które są stałe w czasie kompilacji, a zatem każdy argument atrybutu musi zostać obliczony na wartość stałą czasu kompilacji.

Niektóre konwersje typów nie mogą generować wartości, które są stałe w czasie kompilacji. Na przykład konwertowanie String wartości na wartość Double lub Date zależy od ustawienia regionalnego w czasie wykonywania. Inne konwersje, takie jak tablica typu pochodnego do tablicy Object, przedstawiają różne problemy, które nie zezwalają kompilatorowi na zezwalanie na argumenty atrybutów.

Identyfikator błędu: BC30934

Aby poprawić ten błąd

  • Użyj wyrażenia, które oblicza ten sam typ danych co odpowiadający mu parametr, zgodnie z definicją atrybutu.

Zobacz też