程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 創建C#索引指示器(1)

創建C#索引指示器(1)

編輯:關於C語言

在程序開發過程中,常常需要對一組對象進行訪問,通常是創建數組列表,通過操作數組的方式進行訪 問.C#提供的索引指示器使我們可以方便且高效的完成對一組對象的訪問.通常,我們先創建一個容器類, 用於存儲對象,並且通過實現枚舉器接口提供相應的操作方法.以下示例程序演示了如何創建並使用索引 指示器.

第一步:創建容器類

這段代碼中,使用了ARRAYLIST,使我們可以利用ARRAYLIST的 功能特性管理對象;另外,實現IENUMERATOR接口,提供如MOVENEXT,RESET等方法,並且使容器類可以支持 FOREACH操作.

class Employees:IEnumerator //為了使容器支持( FOREACH...IN... )操 作,必須實現IENUMERATOR接口 )
{
  private ArrayList m_Employees;
  //定義 一個ARRAYLIST對象
  private
  int m_MaxEmployees;
  //定義容器可接受的 最大對象數量
  //構造器,創建ARRAYLIST對象,並且定義可接受的最大對象數量
   public Employees( int MaxEmployees )
  {
    m_MaxEmployees = MaxEmployees;
    m_Employees = new ArrayList( MaxEmployees );
  }
   //按照索引ID創建索引指示器
  public Employee
  this[
  int index]
  {
    get
    {
      if ( index < 0 || index > m_Employees.Count -1 )
      {
        return null;
       }
      return ( Employee ) m_Employees[index];
    }
     set
    {
      if ( index <0 || index > m_MaxEmployees-1 )
      {
        return ;
      }
       m_Employees.Insert( index,value );
    }
  }
  //自定義索引指示器
  public Employee
  this[
  string SSN]
  {
    get
    {
      Employee empReturned = null;
      foreach ( Employee employee in m_Employees )
      {
        if ( employee.SSN == SSN )
        {
          empReturned = employee;
           break;
        }
      }
      return empReturned;
    }
  }
  //提供容器內對象數量
  public
  int Length
  {
    get
    {
      return m_Employees.Count;
    }
  }
  //實現IENUMERATOR接口
  public IEnumerator GetEnumerator( )
  {
    return m_Employees.GetEnumerator( );
  }

  public bool MoveNext( )
  {
    return m_Employees.GetEnumerator( ).MoveNext( );
  }

  public void Reset( )
  {
    m_Employees.GetEnumerator( ).Reset( );
  }

   public object Current
  {
    get
    {
      return m_Employees.GetEnumerator( ).Current;
    }
  }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved