如何在功能中分配参数?

4th*_*ace 5 .net c# c#-4.0

我有一个方法返回一个对象,也有一个out参数.该方法调用另一个方法,该方法采用与另一个参数相同的out参数.这给return语句带来了构建错误:

必须在控制离开当前方法之前分配out参数'param1'

代码如下:

public TypeA Method1(TypeA param1, out bool param2)
{
  /... some logic here .../
  SubMethod(out param2);
  /... some logic here .../
  return param1;
}
Run Code Online (Sandbox Code Playgroud)

param2在SubMethod()中操作,而不是在Method1()中操作.我还需要做些什么吗?

IAb*_*act 3

在这种情况下,我将分配一个“默认”值。无论bool、int、myFoo等——设置一个默认值。

public TypeA Method1(TypeB param1, out bool param2)
{
  param2 = false;   // default value;
  // or
  param2 = default(bool); // in cases where you are not sure what the default is

  /... some logic here .../
  SubMethod(out param2);
  /... some logic here .../
  return param1; // UPDATE: <- this is where you are receiving the exception
}
Run Code Online (Sandbox Code Playgroud)

但是,您需要确定为什么异常引用“param1”,而在此示例中 param1 显然没有错误(为了澄清假设TypeB : TypeA并受到适当约束)。

我相信param2作为out参数传递SubMethod(...)消除了分配的义务param2。但是,您尚未向 分配任何内容param1。这里是否还有更多未解释的事情发生?