본문 바로가기
Programming

인덱서

by Mizix 2010. 8. 6.
반응형

인덱스 생성 법

struct IntBits
    {
        public IntBits(int initialBitValue)
        {
            bits = initialBitValue;
        }

        //여기에 인덱서를 작성.
        public bool this[int index]
        {
            get { return (bits & (1 << index)) != 0; }
            set
            {
                if (value)
                    bits |= (1 << index);
                else
                    bits &= ~(1 << index);
            }
        }
        private int bits;
       
    }

인덱스 특성

  • 인덱서는 메서드가 아니다. 즉, 파라미터를 갖는 괄호가 없으나 인텍스를 지정하기 위한 각괄호가 있다. 이 인텍스는 어던 요소를 사용할 것인지를 지정한다.
  • 모든 인덱서는 메서드 이름 대신 this 키워드를 사용한다. 클레스 또는 구조체는 최대 하나의 인덱서를 정의할 수 있으며, 그 이름은 항상 this이다.
  • 인덱서는 속성처럼 get과 set 접근 메서드를 갖는다. 위의 예제에서 get과 set 접근 메서드는 앞에서 설명한 복잡한 비트 단위의 수식을 포함하게 된다.
  • 인덱서 선언문에 지정한 인덱스에는 인덱서를 호출할 때 지정한 인덱스 값이 사용된다. get과 set 접근 메서드에서는 어떤 요소에 접근할 것인지 결정하기 위해 이 인수를 읽을 수 있다.

인덱서 사용

int adapted = 62;   // 62는 2진수로 111110이다.
            IntBits bits = new IntBits(adapted);
            bool peek = bits[6];// 6번째 인덱스 위치의 논리값을 받는다. 여기서는 참(1)이 된다.
            bits[0] = true;     // 인덱스 0 위치의 비트를 참(1)으로 지정한다.
            bits[3] = false;    // 인덱스 3 위치의 비트를 거짓(0)으로 지정한다.
                                // 이렇게 완성된 값은 111011 또는 10진수 59가 된다.

반응형

'Programming' 카테고리의 다른 글

C# DES 암호화(Encrypt), 복호화(Decrypt)  (0) 2010.08.18
각종 DB JDBC 연결  (0) 2010.08.17
나열형(enum)과 구조체(struct) 선언.  (0) 2010.07.20
JDK 1.6 + mssql 2005 연동하기.  (0) 2010.06.25