我有这个 C# 函数:
Fct( double [] x, out double a, out double b, out double c)
{
// ***
}
我按以下步骤获取 的值a
:
double a , b, c;
Fct( myArray, out a, out b, out c)
如何a
无需定义b
and就可以访问c
?
我有这个 C# 函数:
Fct( double [] x, out double a, out double b, out double c)
{
// ***
}
我按以下步骤获取 的值a
:
double a , b, c;
Fct( myArray, out a, out b, out c)
如何a
无需定义b
and就可以访问c
?
我相信你可以超载“Fct”。添加这个:
Fct( double [] x, out double a)
{
double b,c;
Fct(x, out a, out b, out c);
}
不幸的是,在 C# 中没有直接的技术来解决这个问题。我相信您需要重载该功能。
此外,根据 C# 规范(C# 4.0 规范,第 21.1 节)-“ref 或 out 参数不能有默认参数。”
如果您只是想避免混乱,您可以创建一个辅助函数来“隐藏”其他变量:
Fct(double[] x, out double a)
{
double b, c;
Fct(x, out a, out b, out c);
}
调用此函数时仍会创建两个双精度数,但它避免了混淆调用者的上下文。
如果您想调用Fct
. 参数的整个想法out
是函数没有自己的值,它引用外部值,因此外部值必须存在于某个地方。
这很容易:如果您不想保证将为它们提供值,则无需Fct
使用所有这些参数定义您的函数。out