C#参数参数

时间:2018-04-21 05:44:44

标签: c#

当函数看起来像什么意思?

 bool Connect([ref string  errormessage])
 {
     \\Code
 }

我这样称呼它吗?

 string error = "";
 if(!<MyInstance>.Connect(error))
       MessageBox.Show(error);

1 个答案:

答案 0 :(得分:1)

假设函数调用如下,因为上面的语法错误。

bool Connect(ref string errormessage)
{
    \\Code
}

然后,这意味着

  

参数errormessage作为引用传递,而不是值。

当参数作为参考传递时:

  1. 参数必须在传递之前初始化。
  2. 方法定义和调用方法都必须明确 使用ref关键字。
  3. 对被调用方法中参数的任何更改(即错误消息)都会反映在参数(即错误)中 调用方法。
  4. 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