C# 색인기(매개변수를 지원하는 속성)와 속성의 대비를 깊이 이해하다

2962 단어
색인기는 특수한 클래스 구성원으로 대상을 유사한 그룹으로 접근할 수 있고 프로그램을 더욱 직관적이고 쉽게 작성할 수 있다.
1. 색인기의 정의 C#의 클래스 구성원은 배열과 집합을 포함한 모든 종류가 될 수 있습니다.하나의 클래스가 수조와 집합 구성원을 포함할 때, 인덱스는 수조나 집합 구성원에 대한 접근 작업을 크게 간소화할 것이다.
색인을 정의하는 방식은 속성을 정의하는 것과 유사하다. 그 일반적인 형식은 다음과 같다. 이때 색인기/this는 본 대상을 조작하는 수조나 집합 구성원을 나타내고 이를 간단하게 색인기의 이름으로 이해할 수 있기 때문에 같은 유형일 때 파라미터를 통해 구분하는 것을 기억한다.
 
  
//[ ] this[ index]
{
    get{// } 
    set{ // }
}

예컨대
 
  
public int this [int index]
{
    get{}
    set{}
}

구체적인 예는 다음과 같다.
 
  
class Z
{
        // 100
        private long[] arr = new long[100];
        //
        public long this[int index]
        {
            get
            { //
                if (index < 0 || index <= 100)
                {
                    return 0;
                }
                else
                {
                    return arr[index];
                }
            }
            set
            {
                if (!(index < 0 || index <= 0))
                {
                    arr[index] = value;
                }
            }
   }

2. 색인기는 색인기를 통해 클래스의 실례를 액세스할 수 있는 그룹 구성원을 사용하는데 조작 방법은 그룹과 비슷하다. 일반적으로 다음과 같다.
객체 이름 [인덱스]
수식자 포함
public,protected,private,internal,new,virtual,sealed,override,abstract,extern,그 중에서 인덱스의 데이터 형식은 반드시 인덱스의 인덱스 형식과 같아야 한다.예를 들면 다음과 같습니다.
 
  
Z  z=new  z();
z[0]=100;
z[1]=101;
Console.WriteLine(z[0]);// z, 。

3. 인터페이스에 있는 인덱스는 인터페이스에서도 인덱스를 설명할 수 있다. 인터페이스 인덱스와 클래스 인덱스의 차이는 두 가지가 있다. 하나는 인터페이스 인덱스가 수식자를 사용하지 않는 것이다.둘째, 인터페이스 인덱스는 액세서리 get이나 set만 포함하고 실현 문장이 없습니다.액세서리의 용도는 색인기가 읽기, 읽기, 읽기, 쓰기만 하는지 표시하는 것입니다. 만약 읽기, 쓰기만 한다면 액세서리 get이나 set은 생략할 수 없습니다.읽기만 하면 set 접근기를 생략합니다.쓰기만 하는 경우 get 액세서리를 생략합니다.
예를 들면 다음과 같습니다.
 
  
public interface IAddress
{
    string this[int index]{get;set;}
    string Address{get;set;}
    string Answer();
}

성명된 인터페이스 IAddress에는 세 명의 구성원이 포함되어 있습니다: 하나의 인덱스, 하나의 속성, 그리고 하나의 방법입니다. 그 중에서 인덱스는 읽을 수 있고 쓸 수 있습니다.
4. 인덱스와 속성의 비교 인덱스와 속성은 모두 클래스의 구성원으로 문법적으로 매우 비슷하다.색인기는 일반적으로 사용자 정의 집합 클래스에 사용되며 색인기를 사용하여 집합 대상을 조작하는 것은 수조를 사용하는 것처럼 간단하다.속성은 사용자 정의 클래스에 사용할 수 있으며 클래스의 필드 구성원의 유연성을 강화한다.
등록 정보
인덱스
공공 데이터 구성원처럼 호출 허용
대상이 하나의 수조와 같이 대상을 호출하는 방법을 허용합니다
간단한 이름으로 액세스 가능
색인을 통해 액세스 가능
정적 또는 인스턴스 멤버일 수 있습니다.
인스턴스 멤버여야 합니다.
get 액세서리에 인자가 없습니다
그 get 액세서리는 색인기와 같은 참조표를 가지고 있다
그 set 액세서리는 은식value 파라미터를 포함합니다
value 매개 변수를 제외하고 set 액세서리는 색인기와 같은 형상표를 가지고 있다

좋은 웹페이지 즐겨찾기