在C#语言中,索引器(Indexer)是一种特殊的成员,允许类或结构以类似于数组的方式访问其元素。它提供了一种方便的方式来访问和操作类或结构中的数据。索引器实际上是一种特殊的属性。
C#中的索引器可以具有一个或多个参数,用于接收用于访问索引器的键(索引)。索引器可以返回或设置与给定键相关联的值。
下面是一个简单的示例,演示了如何定义和使用C#中的索引器:
class MyDictionary
{
private string[] keys;
private string[] values;
public MyDictionary()
{
keys = new string[10];
values = new string[10];
}
public string this[string key]
{
get
{
int index = Array.IndexOf(keys, key);
if (index >= 0)
{
return values[index];
}
else
{
return null;
}
}
set
{
int index = Array.IndexOf(keys, key);
if (index >= 0)
{
values[index] = value;
}
else
{
int emptyIndex = Array.IndexOf(keys, null);
if (emptyIndex >= 0)
{
keys[emptyIndex] = key;
values[emptyIndex] = value;
}
else
{
throw new Exception("Dictionary is full.");
}
}
}
}
}
class Program
{
static void Main(string[] args)
{
MyDictionary dictionary = new MyDictionary();
dictionary["Apple"] = "A fruit";
dictionary["Orange"] = "Another fruit";
Console.WriteLine(dictionary["Apple"]); // 输出:A fruit
Console.WriteLine(dictionary["Orange"]); // 输出:Another fruit
Console.ReadKey();
}
}
访问器中,我们首先检查给定键是否已存在,如果存在,则更新对应的值。如果不存在,则找到一个空槽位来存储给定键和值。如果数组已满,将抛出异常。
需要注意的是,以上示例只是一个简单的索引器的示例,您可以根据具体的需求和数据结构进行调整和扩展。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。