在方法调用

时间:2016-07-19 10:42:25

标签: c#

编写代码时,我有时会发现如果需要,返回成功的bool值和代码的out参数很有用。甚至使用TryParse函数及其各自的out参数。

最近的一个例子是以下方法签名:

private State GetTheStateOfClass1(Class1 o, out double confidence)

这里我有一个方法可以找到Class1对象的状态以及对象确实具有该状态的相应信心。

在创建Class2的新实例时使用此方法,如下所示:

double confidence;
Class2 c2 = new Class2(GetTheStateOfClass1(o, out confidence), confidence, ...);

有没有办法可以像这样使用内联输出参数:

Class2 c2 = new Class2(GetTheStateOfClass1(o, out double confidence), confidence, ...);

1 个答案:

答案 0 :(得分:1)

据我了解,这是不可能的; out参数必须是调用者范围内的实际变量。话虽如此,解决方法是创建一个不使用out参数的重载,如下所示。

private State GetTheStateOfClass1(Class1 o)
{
    double confidence;
    return GetTheStateOfClass1(Class1 o, out confidence);
}