使用C# Indexer

來源:互聯網
上載者:User
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);
                }
        } 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.