在C#中要给一个数组定义一个访问器,可使用this关键字实现。
例:
//定义一个类
public class A
{
public A()
{
bytes = new byte[] {1,2,3,4 };
}
byte[] bytes = new byte[4];
public byte[] B
{
get { return bytes; }
set { bytes = value; }
}
public byte this[int i]
{
get { return bytes[i]; }
set
{
bytes[i] = value;
Console.WriteLine("设置值:"+value);
//加入判断在值不一样才设置
//if (value !=bytes[i])
//{
// bytes[i] = value;
// Console.WriteLine("设置值");
//}
}
}
}
//调用
class Program
{
static void Main(string[] args)
{
A a = new A();
a[0] = 1;
a[0] = 2;
int b = a[2];
Console.WriteLine(b);
foreach(var temp in a.B)
{
Console.WriteLine(temp);
}
Console.ReadLine();
}
}
结果: