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
在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