使用C# Indexer
发表于:2007-06-30来源:作者:点击数:
标签:
Indexer是C#中新增加的,可能有些朋友会有些困惑,最近做的一些事情 经常使用Index,顺手写一个简单的例子给大家看看,如果有什么问题可以问! 这个例子包含三个类:DataRow、DataItem、DataItemCollection。 其中DataItemCollection中使用了Indexer。 using
Indexer是C#中新增加的,可能有些朋友会有些困惑,最近做的一些事情
经常使用Index,顺手写一个简单的例子给大家看看,如果有什么问题可以问!
这个例子包含三个类:DataRow、DataItem、DataItemCollection。
其中DataItemCollection中使用了Indexer。
using System;
using System.Collections;
public static void Main(string [] args)
{
DataRow myDataRow = new DataRow();
DataItem myDataItem = new DataItem("Text","Value");
DataRow.DataItems.Add(myDataItem);
Console.WriteLine(myDataRow.DataItems[0].Text);
}
public class DataRow
{
public DataItemCollection DataItems;
public DataRow()
{
DataItems = new DataItemCollection();
}
}
public class DataItem
{
private string _text;
private string _value;
public DataItem(string text, string value)
{
_text=text;
_value=value;
}
public string Text
{
get
{
return(_text);
}
set
{
_text=value;
}
}
public string Value
{
get
{
return(_value);
}
set
{
_value=value;
}
}
}
public class DataItemCollection
{
private ArrayList _array = new ArrayList();
public virtual int Count
{
get
{
return(_array.Count);
}
}
public DataItem this[int index] //此处使用了Indexer
{
get
{
if(index>=0 && index<_array.Count)
{
return((DataItem)_array[index]);
}
else
{
throw new Exception("index overflow");
}
}
set
{
if(index>=0 && index<_array.Count)
{
_array[index]=value;
}
else
{
throw new Exception("index overflow");
}
}
}
public void Add(DataItem item)
{
_array.Add(item);
}
public void Remove(DataItem item)
{
_array.Remove(item);
}
public void RemovAt(int i)
{
_array.RemoveAt(i);
}
}
原文转自:http://www.ltesting.net