private T[] ObjArrayExtend<T>(T[] arr, int length,T instance)
{
T[] temp = null;
if (arr == null)
{
temp = new T[length];
temp[length - 1] = instance;
}
else
{
if (length < arr.Length)
{
temp = new T[length + 1];
Array.Copy(arr, temp, length);
}
else
{
temp = new T[length + 1];
Array.Copy(arr, temp, arr.Length);
}
} return temp;
}
{
T[] temp = null;
if (arr == null)
{
temp = new T[length];
temp[length - 1] = instance;
}
else
{
if (length < arr.Length)
{
temp = new T[length + 1];
Array.Copy(arr, temp, length);
}
else
{
temp = new T[length + 1];
Array.Copy(arr, temp, arr.Length);
}
} return temp;
}
Array.Copy 方法
从第一个元素开始复制 Array 中的一系列元素,将它们粘贴到另一 Array 中(从第一个元素开始)。
private T[] ObjArrayExtend<T>(T[] arr, int length,T instance)
{
T[] temp = null;//声明泛型数组引用temp
if (arr == null)//判断形参arr
{
//形参arr为null则执行
temp = new T[length];//创建length长度的T数组,将temp赋值为数组的引用
temp[length - 1] = instance;//最后一个元素赋值为形参instance
}
else
{
//形参arr不为null则执行
if (length < arr.Length)//length比arr长度小
{
temp = new T[length + 1];//创建一个length+1长度的数组
Array.Copy(arr, temp, length);//将arr复制到这个数组中
}
else//arr长度大于length
{
temp = new T[length + 1];//创建一个length+1长度的数组
Array.Copy(arr, temp, arr.Length);//将arr复制到这个数组中
}
} return temp;
}
//从逻辑上看不出是干什么的,具体情况看看把。一般阅读别人代码要结合调用的地方看。