有没有办法知道是否已经设置了out参数.这是我正在寻找的伪代码:
public virtual string blabla(long num,out bool bval) { if (!bval.HasValue) { //Do some default logic bval = defaultValue; } return blabla2(num,bval); }
解决方法
您不能 – 在您的方法中明确分配变量之前,您无法读取变量.您应该将其视为局部变量,声明但在方法开头没有赋值 – 但必须在返回之前为其赋值. (如果抛出异常,可以不为它分配值.)
如果你想要一个携带信息作为方法输入的参数以及传播信息,你应该使用ref而不是out.
有关更多信息,请参见my article on parameter passing.