첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170

▶ Employee.cs

/// <summary>
/// 직원
/// </summary>
public class Employee
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Property
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region 이름 - FirstName

    /// <summary>
    /// 이름
    /// </summary>
    public string FirstName { get; set; }

    #endregion

    #region 성 - LastName

    /// <summary>
    /// 성
    /// </summary>
    public string LastName { get; set; }

    #endregion

    //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region 생성자 - Employee(firstName, lastName)

    /// <summary>
    /// 생성자
    /// </summary>
    /// <param name="firstName">이름</param>
    /// <param name="lastName">성</param>
    public Employee(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName  = lastName;
    }

    #endregion
}

 

▶ EmployeeEnumerator.cs

using System;
using System.Collections;

/// <summary>
/// 직원 열거자
/// </summary>
public class EmployeeEnumerator : IEnumerator
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Field
    ////////////////////////////////////////////////////////////////////////////////////////// Private

    #region Field

    /// <summary>
    /// 직원 배열
    /// </summary>
    private  Employee[] employeeArray;

    /// <summary>
    /// 현재 위치
    /// </summary>
    private int currentPosition = -1;

    #endregion

    //////////////////////////////////////////////////////////////////////////////////////////////////// Property
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region 직원 배열 - EmployeeArray

    /// <summary>
    /// 직원 배열
    /// </summary>
    public Employee[] EmployeeArray
    {
        get
        {
            return this.employeeArray;
        }
        set
        {
            this.employeeArray = value;
        }
    }

    #endregion

    #region 현재 항목 - IEnumerator.Current

    /// <summary>
    /// 현재 항목
    /// </summary>
    object IEnumerator.Current
    {
        get
        {
            return Current;
        }
    }

    #endregion

    #region 현재 항목 - Current

    /// <summary>
    /// 현재 항목
    /// </summary>
    public Employee Current
    {
        get
        {
            try
            {
                return this.employeeArray[this.currentPosition];
            }
            catch(IndexOutOfRangeException)
            {
                throw new InvalidOperationException();
            }
        }
    }

    #endregion

    //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region 생성자 - EmployeeEnumerator(employeeArray)

    /// <summary>
    /// 생성자
    /// </summary>
    /// <param name="employeeArray">직원 배열</param>
    public EmployeeEnumerator(Employee[] employeeArray)
    {
        this.employeeArray = employeeArray;
    }

    #endregion

    //////////////////////////////////////////////////////////////////////////////////////////////////// Method
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region 다음 요소로 이동하기 - MoveNext()

    /// <summary>
    /// 다음 요소로 이동하기
    /// </summary>
    /// <returns>현재 위치가 마지막 요소 뒤 위치 여부</returns>
    public bool MoveNext()
    {
        this.currentPosition++;

        return (this.currentPosition < this.employeeArray.Length);
    }

    #endregion
        
    #region 위치 처음 요소 앞으로 이동하기 - Reset()

    /// <summary>
    /// 위치 처음 요소 앞으로 이동하기
    /// </summary>
    public void Reset()
    {
        this.currentPosition = -1;
    }

    #endregion
}

 

728x90
반응형
그리드형
Posted by 사용자 icodebroker
TAG , ,

댓글을 달아 주세요