using System;
namespace 索引器
{
class Program
{
class Array
{
int[] arr;
//数组的查和改
public int this[int a]
{
get
{
if(arr == null)
{
Console.WriteLine("数组为空!");
return 0;
}
else
{
if(a>=arr.Length||a<0)
{
Console.WriteLine("访问越界!");
return 0;
}
else
{
return arr[a];
}
}
}
set
{
if(arr==null)
{
Console.WriteLine("数组为空!");
}
else
{
if(a>=arr.Length||a<0)
{
Console.WriteLine("访问越界!");
}
else
{
arr[a] = value;
}
}
}
}
/// <summary>
/// 数组添加
/// </summary>
/// <param name="num"></param>
public void add(params int[] num)
{
if(arr==null)
{
arr = num;
}
else
{
int len = arr.Length + num.Length;
int[] newarr = new int[len];
int i = 0;
for(i = 0;i<arr.Length;i++)
{
newarr[i] = arr[i];
}
for(;i<num.Length;i++)
{
newarr[i] = num[i-arr.Length];
}
arr = newarr;
}
}
/// <summary>
/// 数组删除
/// </summary>
/// <param name="target"></param>
public void delet(int target)
{
if(arr==null)
{
Console.WriteLine("数组为空!");
}
else
{
if(target>=arr.Length||target<=0)
{
Console.WriteLine("访问越界!");
}
else
{
int[] newarr = new int[arr.Length-1];
int i = 0;
for(i=0;i<target;i++)
{
newarr[i] = arr[i];
}
i += 1;
for(;i<arr.Length;i++)
{
newarr[i - 1] = arr[i];
}
arr = newarr;
}
}
}
public void show()
{
if(arr==null)
{
Console.WriteLine("数组为空!");
}
else
{
int i = 0;
for(i=0;i<arr.Length;i++)
{
Console.Write(arr[i]+" ");
}
Console.WriteLine();
}
}
}
static void Main(string[] args)
{
Array arr1 = new Array();
arr1.add(1, 2, 3, 4, 5, 6);
arr1.delet(5);
arr1[1] = 999;
arr1.show();
}
}
}