使用参数"out"而不分配<variable>



以下代码有错误:

使用参数"out"而不分配"备份">

public void StartProgram()
{
    string backup = " ";
    NewContact(backup: out backup);
}
void NewContact(out string backup)
{
    string contact = "Bob";
    backup = backup + contact; // Error here
}

我无法弄清楚问题出在哪里,NewContact(out string backup)的方法正在使用out参数。 因此,当该方法完成后,它应该在StartProgram()方法中为变量存储设置一个新值。

(该变量用于存储正在创建的所有联系人(

out 关键字表示仅用于输出而不用于输入的参数。 因此,参数声明out的第一个用法必须是赋值。 在NewContact方法中,backup参数的首次使用如下所示:

backup = backup + contact;

该代码连接backupcontact,然后将结果分配给backup 。 这意味着您第一次使用 backup 参数是串联,这不是赋值,因此是不允许的。

你为什么要尝试连接一些在这一点上没有有用价值的东西? 如果您期望backup在这一点上可以有一个值,那么该参数必须用作输入和输出,因此应该声明为ref而不是out

根据 C# 中的 out 关键字用法,我们需要在 Call Method( NewContact( 中赋值变量,然后用于操作。所以你可以像下面这样编码:

void NewContact(out string backup)
{
    backup = string.Empty; // Or any value that your logic needs.
    string contact = SnapsEngine.ReadString("Enter the contact name");
    string address = SnapsEngine.ReadMultiLineString("Enter " + contact + " address");
    string number = SnapsEngine.ReadString("Enter " + contact + " number");
    Storeinfo(contact: contact, address: address, number: number);
    backup = backup + contact;
    SnapsEngine.WaitForButton("Continue");
}

相关内容

  • 没有找到相关文章

最新更新