公共语言运行时支持设置为(/ clr)。当我尝试使用参数(argv [1])时,它返回“true”,这实际上不是真的,因为我有一个路径作为参数传递给它。有人可以帮助我,因为我应该如何避免这种情况发生。编译警告状态 - >强迫bool'true'或'false'(性能警告)
int main(int argc, char* argv[])
{
Console::WriteLine(argv[1]);
}
答案:“真实”
答案 0 :(得分:1)
问题是没有Console::WriteLine
函数占用char*
。您应该将其转换为String
对象。
关于警告消息和输出,这是因为编译器无法找到WriteLine
调用的完全匹配,如果可能,它将选择另一个函数。在这种情况下,它选择带有Boolean
参数的那个,因为指针可以隐式地转换为bool
,而Boolean
又可以转换为"true"
。输出为{{1}},因为在指向bool的转换中,任何非空指针都被视为true。