C#将相同的变量传递给两个"out"参数

Joh*_*ohn 4 c#

"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)由于您通过引用传递,因此您user1user2都指向同一个变量.因此,当您更新一个时,它会更新另一个.