在下面的示例中,'user1' 和 'user2' 指向相同的引用是否正常?
我知道我正在将同一个变量“notUsed”传递给两个参数,但它尚未实例化,因此它不包含对任何内容的引用。看到 user1 和 user2 相互链接,我感到非常震惊。
static void CheckPasswords(out string user1, out string user2)
{
user1 = "A";
user2 = "B";
Console.WriteLine("user1: " + user1);
Console.WriteLine("user2: " + user2);
}
public static void Main()
{
string notUsed;
CheckPasswords(out notUsed, out notUsed);
}
控制台显示:
user1: B
user2: B
最佳答案
当您使用out
关键字时,您通过引用传递。 ( https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/out-parameter-modifier ) 由于您是通过引用传递的,因此您的 user1
和 user2
都指向同一个变量。因此,当您更新一个时,它也会更新另一个。
关于C# 将相同的变量传递给两个 "out"参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45923288/