有吗 还是为了加快我的程序,我应该通过引用传递它们?
Answers:
该引用按值传递。
.NET中的数组是堆上的对象,因此您有一个引用。该引用按值传递,这意味着调用者将可以看到对数组内容的更改,但是重新分配数组不会:
void Foo(int[] data) {
data[0] = 1; // caller sees this
}
void Bar(int[] data) {
data = new int[20]; // but not this
}
如果添加ref
修饰符,则引用将通过引用传递-调用者将在上面看到任一更改。
是的,默认情况下在C#中通过引用传递它们。除了值类型,C#中的所有对象都是。更确切地说,它们是“按值引用”传递的;也就是说,您在方法中看到的变量的值是对传递的原始对象的引用。这是一个很小的语义要点,但有时可能很重要。