//谈不上原创,初学C#,参考教程自己修改后写的测试代码
class Program
{class CArray
{
private int[] arr; //数组
private int upper; //上限
private int numElements; //数量
public CArray(int size)
{
arr = new int[size];
upper = size;
numElements = 0;
}
/// <summary>
/// Append动态添加数组元素
/// </summary>
/// <param name="item">元素值</param>
public void Append(int item)
{
if (numElements < upper)
{
arr[numElements] = item;
numElements++;
}
else
{
int[] newArr= new int[arr.Length * 2]; //创建新数组,每次扩容,参照前次的2倍
arr.CopyTo(newArr, 0);
arr = newArr; //引用新地址
upper = arr.Length;
arr[numElements] = item;
numElements++;
}
}
public void ShowArray()
{
for (int i=0; i< numElements; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
}
}
static void Main(string[] args)
{
CArray nums = new CArray(10); //创建有10个元素空间的数组
Random rnd = new Random(100);
for (int i = 0; i < 20; i++) //随机添加20个元素值,数组动态扩容
nums.Append(rnd.Next(0, 100));
nums.ShowArray();
Console.ReadKey();
}
}