【发布时间】:2020-07-31 03:22:20
【问题描述】:
我正在尝试使用
public: bool^ IsNumeric(Object^ Expression) {
double^ retNum;
bool^ isNum = Double::TryParse(Convert::ToString(Expression), System::Globalization::NumberStyles::Any, System::Globalization::NumberFormatInfo::InvariantInfo, out retNum);
return isNum;
}
但我得到一个错误:标识符 OUT 未定义 我不知道如何在 clr/c++ 中使用 OUT 谢谢
【问题讨论】:
-
是的,我收到错误严重性代码描述项目文件行抑制状态错误 C2665 'System::Double::TryParse': 2 个重载都不能转换所有参数类型 Project1 C:\Users\ Tewni\source\repos\Project1\Project1\MyForm.h 410
-
System.NullReferenceException: '对象引用未设置为对象的实例。' retNum 为空。
-
跟踪参考运算符是
%,所以使用%retNum。并且retNum不应使用^声明。 -
知道何时使用 ^ 帽子非常重要,在 C++/CLI 还不清楚的时候很难取得进展。 bool 和 double 是值类型,而不是对象类型,因此这些类型的变量不能用 ^ 声明。有了这顶帽子,它就变成了值的盒装副本(后台是 System.ValueType),编译器很可能会严重丢失它的弹珠。