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;
}
}