"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);
}
Run Code Online (Sandbox Code Playgroud)
控制台显示:
user1: B
user2: B
Run Code Online (Sandbox Code Playgroud)
小智 10
使用out关键字时,按引用传递.(https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/out-parameter-modifier)由于您通过引用传递,因此您user1和user2都指向同一个变量.因此,当您更新一个时,它会更新另一个.