以下代码有错误:
使用参数" 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()
方法中为变量存储设置一个新值。
(该变量用于存储正在创建的所有联系人)
答案 0 :(得分:4)
out
关键字表示仅用于输出而不用于输入的参数。因此,参数的第一次使用声明out
必须才能成为作业。在NewContact
方法中,第一次使用backup
参数位于:
backup = backup + contact;
该代码连接backup
和contact
,然后将结果分配给backup
。这意味着您首次使用backup
参数是一个连接,这不是一个赋值,因此是不允许的。
为什么你要尝试连接那些没有用价值的东西?如果您希望backup
在该点具有值,则该参数必须用作输入和输出,因此应声明为ref
而不是out
。
答案 1 :(得分:0)
根据 Out 关键字在C#中的使用,我们需要在调用方法(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");
}