ref 是否复制变量? [重复]

问题描述 投票:0回答:1

在 C++ 中,可以通过值和引用将对象传递给函数。

class MyClass {
    // ...
}

void foo(MyClass by_value) {
    // ...
}

void bar(MyClass& by_reference) {
    // ...
}

在 C++ 中通过引用传递对象通常更好,因为它可以防止调用类的复制构造函数。

C#有一个

ref
关键字,看起来和c++的引用类似,但是How do I pass a const reference in C#?说的是复制引用。这是否意味着对象本身也被复制了?

c# ref
1个回答
0
投票

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

例如:

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

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

所以要回答你的问题,

ref
关键字不会“复制”变量。

您可以在此处阅读有关

ref
关键字的更多信息:https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/ref

© www.soinside.com 2019 - 2024. All rights reserved.