获得单一参数

时间:2012-11-06 18:30:36

标签: 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) 

如何在不必定义ab的情况下访问c

4 个答案:

答案 0 :(得分:3)

我相信你可以超载“Fct”。加上这个:

Fct( double [] x, out double a) 
{
    double b,c;
    Fct(x, out a, out b, out c);
}

答案 1 :(得分:0)

如果您只是想避免混乱,可以使用辅助函数“隐藏”其他变量:

Fct(double[] x, out double a)
{
    double b, c;
    Fct(x, out a, out b, out c);
}

调用此函数时仍会创建两个双精度数,但它可以避免使调用者的上下文混乱。

如果要调用Fct,则无法避免在某处创建两个 out参数的整个概念是函数没有自己的值,它引用外部值,因此外部值必须存在于某处。

答案 2 :(得分:0)

这很简单:如果您不想保证为它们提供值,则不要使用所有Fct参数定义out函数。

答案 3 :(得分:0)

不幸的是,没有直接的技术来解决C#中的问题。我相信你需要重载这个功能。

另外,根据C#规范(C# 4.0 Specification,第21.1节) - " ref或out参数不能有default-argument。"