use*_*374 3 c++ vb.net variables
所以我有一个用c ++编写的类,需要将它转换为vb.net但是我在转换函数的某个部分时遇到了问题.
void deg_min_sec2decimal(double deg, double min, double sec, double& dec_deg)
{
dec_deg = (deg+min/60.0+sec/3600.0);
}
Run Code Online (Sandbox Code Playgroud)
什么类型的变量是"double&",我知道双重但是"&"是什么?它不是"double&dec_deg"所以它不是adres(指针等)?
以及如何将其转换为vb.net?
Grtz
这是一个参考.这意味着无论您将值设置为函数内部,从外部传入的原始变量都将具有该值.
您可以通过使用ByRef 或使函数返回该表达式的结果而不是将其转换为VB double&,并将您传入的变量设置为函数的结果.
所以,如果你之前有这个:
double retval;
deg_min_sec2decimal(something, something2, something3, retval);
Run Code Online (Sandbox Code Playgroud)
你要改变它
Dim retval = deg_min_sec2decimal(something, something2, something3)
Run Code Online (Sandbox Code Playgroud)
(我不知道VB,所以语法可能是错误的,但你明白了.)
我会选择后者,因为通过参数返回的东西通常只在你需要多个返回值时使用,而且该函数甚至没有返回任何东西.
double&只是参考的两倍.在VB.NET中,它将被声明ByRef dec_deg as Double.
编辑:但是,我建议不要使用void函数来通过引用设置值,只需将返回类型更改为double并返回表达式,而不必通过引用传递变量.