数组或列表默认是通过c#中的引用传递的吗?他们呢?或者我应该通过引用传递它来加快我的程序?
3 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
该参考被传递通过值。
.NET中的数组是堆上的对象,因此您有一个引用。该引用按值传递,这意味着调用者将看到对数组内容的更改,但重新分配数组将不会:
void Foo(int[] data) {
data[0] = 1; // caller sees this
}
void Bar(int[] data) {
data = new int[20]; // but not this
}
如果添加ref修饰符,则引用将通过引用传递- 并且调用者将看到上面的更改。
墨色风雨
TA贡献1853条经验 获得超6个赞
是的,它们默认在C#中通过引用传递。除了值类型之外,C#中的所有对象都是。为了更精确一点,它们通过“按价值参照”传递; 也就是说,您在方法中看到的变量的值是对传递的原始对象的引用。这是一个小的语义点,但有时可能很重要。
- 3 回答
- 0 关注
- 562 浏览
添加回答
举报
0/150
提交
取消