当函数看起来像什么意思?
bool Connect([ref string errormessage])
{
\\Code
}
我这样称呼它吗?
string error = "";
if(!<MyInstance>.Connect(error))
MessageBox.Show(error);
答案 0 :(得分:1)
假设函数调用如下,因为上面的语法错误。
bool Connect(ref string errormessage)
{
\\Code
}
然后,这意味着
参数errormessage作为引用传递,而不是值。
当参数作为参考传递时:
string error = ""; //Point 1
if(!<MyInstance>.Connect(ref error)) //Point 2
bool Connect(ref string errormessage) //Point 2
{
errormessage = "Error Occurred";
// At this moment the value of error becomes 'Error Occurred' since
// it was passed by reference - Point 3
}
关于语法错误,[ref string errormessage]
会给出语法错误,因为它不是有效attribute,即[Optional] string errormessage
。
此外,使用带有ref
的可选属性并没有太大用处,因为使用ref传递的参数不能具有默认值。
来源:MSDN。