C# 为什么不必返回此数组?

C# 为什么不必返回此数组?,c#,C#,我指的是本网站上的代码: publicstaticvoidshuffle(T[]数组) { var random=_random; 对于(int i=array.Length;i>1;i--) { //选择要交换的随机元素。 int j=random.Next(i);//0这是因为T[]数组是一种引用类型。调用Shuffle方法时,不会复制数组本身-只有引用是,但它仍然指向同一数组,因此当您在方法内修改它的值时,您也会在方法外看到它。 数组是一种机制,允许您将多个项视为一个数组 单个集合。Mic

我指的是本网站上的代码:

publicstaticvoidshuffle(T[]数组)
{
var random=_random;
对于(int i=array.Length;i>1;i--)
{
//选择要交换的随机元素。

int j=random.Next(i);//0这是因为
T[]
数组是一种引用类型。调用
Shuffle
方法时,不会复制数组本身-只有引用是,但它仍然指向同一数组,因此当您在方法内修改它的值时,您也会在方法外看到它。

数组是一种机制,允许您将多个项视为一个数组 单个集合。Microsoft®.NET公共语言运行库(CLR) 支持一维数组、多维数组和 交错数组(数组的数组)。所有数组类型都是隐式的 派生自System.Array,该数组本身派生自System.Object。 这意味着所有数组都是引用类型 在托管堆上分配,并且应用程序的变量包含 引用数组而不是数组本身

因为它们是引用类型,所以所讨论的函数正在接收对数组的引用

public static void Shuffle<T>(T[] array)
{
    var random = _random;
    for (int i = array.Length; i > 1; i--)
    {
        // Pick random element to swap.
        int j = random.Next(i); // 0 <= j <= i-1
        // Swap.
        T tmp = array[j];
        array[j] = array[i - 1];
        array[i - 1] = tmp;
    }
}