编写代码时,我有时会发现如果需要,返回成功的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, ...);
答案 0 :(得分:1)
据我了解,这是不可能的; out
参数必须是调用者范围内的实际变量。话虽如此,解决方法是创建一个不使用out参数的重载,如下所示。
private State GetTheStateOfClass1(Class1 o)
{
double confidence;
return GetTheStateOfClass1(Class1 o, out confidence);
}