c# 的 ref 是否复制以及如何防止它?

Does c#'s ref copy and how to prevent it?

在c++中,传递const引用通常用于节省复制时间。我知道 c# 有一个 ref 关键字,但 How do I pass a const reference in C#? 中接受的答案说它仍然创建传递变量的副本,但同时修改它们。我怎样才能防止这种情况发生?

ref 关键字用于通过引用而不是值传递参数。 ref 关键字使形参成为参数的别名,它必须是一个变量。换句话说,对参数的任何操作都是对参数进行的。

例如:

void Method(ref int refArgument)
{
    refArgument = refArgument + 44;
}

int number = 1;
Method(ref number);
Console.WriteLine(number);
// Output: 45

所以要回答你的问题,ref 关键字不会“复制”变量。

您可以在此处阅读有关 ref 关键字的更多信息:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/ref