数组或列表默认通过引用在C#中传递?

他们呢? 或者加快我的程序,我应该通过参考通过他们?

引用是通过传递

.NET中的数组是堆中的对象,所以你有一个参考。 该引用是通过值传递的,这意味着数组内容的更改将被调用者看到,但重新分配数组不会:

void Foo(int[] data) { data[0] = 1; // caller sees this } void Bar(int[] data) { data = new int[20]; // but not this } 

如果添加ref修饰符,则引用通过引用传递 – 调用者将看到上面的更改。

它们是通过值传递的(就像所有既不是ref也不是out的参数那样),但是这个值对象的引用,所以它们通过引用被有效地传递。

是的,它们在C#中默认通过引用传递。 除了值types,C#中的所有对象都是。 为了更精确一点,他们通过“价值参照”传递; 也就是说,您在方法中看到的variables的值是对传递的原始对象的引用。 这是一个小的语义点,但有时可能是重要的。

一个数组是一个参考。 它是通过价值传递的。