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

标签 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);
}

控制台显示:

user1: B
user2: B

最佳答案

当您使用out 关键字时,您通过引用传递。 ( https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/out-parameter-modifier ) 由于您是通过引用传递的,因此您的 user1user2 都指向同一个变量。因此,当您更新一个时,它也会更新另一个。

关于C# 将相同的变量传递给两个 "out"参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45923288/

相关文章:

c# - Python:Inflate 和 Deflate 实现

c# - 使用 StackExchange 库从 Windows 上的 C# 连接到 Redis 时出错

c# - 如何在等待用户输入时捕获时间间隔?

c# 加密,得到 .der 和 .pem 文件作为输入

c# - C# .NET 中部分文档的 Xml 签名验证失败

c# - 如何获取 Windows 应用商店应用程序的本地网络 IP 地址

c# - C#中的双重比较精度损失,加减 double 时发生精度损失

c# - Access c# 数据库 OleDbException

c# - 如何使用带有 ASP.Net 的 smtpClient 安全地发送我的凭据

c# - 在 C# 中以编程方式进行 Win7 屏幕截图