使用C# Indexer - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 使用C# Indexer (http://www.webasp.net/article/6/5589.htm) |
| -- 作者:未知 -- 发布日期: 2003-07-12 |
| 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); } } |
| webasp.net |