【发布时间】:2014-06-22 20:04:58
【问题描述】:
从 C/C++ 开始我在 C# 世界中的第一步,所以细节有点模糊。据我了解,默认情况下,类是通过引用传递的,但是例如。列表
void DoStuff(List<string> strs)
{
//do stuff with the list of strings
}
其他地方
List<string> sl = new List<string>();
//next fill list in a loop etc. and then do stuff with it:
DoStuff(sl);
在这种情况下是 sl 通过引用传递还是复制,所以我需要重新定义工作函数,如
void DoStuff(ref List实际作用于 sl 本身而不是副本?strs)
【问题讨论】:
-
class通过引用传递。struct按值传递。 -
this 文章应该可以帮助您更好地了解这个领域。
-
似乎 C# 和 C++ 中的“按引用传递”来自不同的字典。无论如何,谢谢大家的回答——模糊的细节现在不那么模糊了。
-
@Scre 有些人在 C# 中以不同的含义混淆使用“按引用传递”,因为术语“引用”和“引用类型”(实际上是指“引用”的不同含义)。但是在 C# 中正确使用“按引用传递”,
ref参数,几乎与一般 C++ 和 CS 中称为按引用传递的东西相同。
标签: c# pass-by-reference pass-by-value