У меня есть класс, определяемый как:Десятичного^Указанного Cast Invalid вызова ToString()
public ref class MyParameters
{
private:
property Decimal^ tickValue;
public:
MyParameters(Decimal^ tickValue){
this->tickValue = tickValue;
}
std::string GetTickValue();
};
std::string MyParameters::GetTickValue()
{
String^ test = this->tickValue->ToString(); <--Invalid Cast here
return marshal_as<std::string>(test);
}
Если я бряк на эту строку и вставьте this->tickValue->ToString()
в быстрые часы он работает отлично!
Я заметил, что подпись моего конструктора была изменена на MyParameters(ValueType^ tickValue)
??
Ваш код отлично подходит для меня. Вы уверены, что это именно тот код, который у вас есть, тем более, что в нем была синтаксическая ошибка? Какова трассировка стека исключения? Вы уверены, что передаете «decimal» в конструктор? – svick
'System :: Decimal' - это тип значения, а не ссылочный тип. Измените все 'Decimal ^' на 'Decimal', если нет причин, по которым вы действительно хотите бокс здесь. – ildjarn