C #에서 "this [0]"은 무엇을 의미합니까?
라이브러리 코드를 살펴보고 다음과 같은 방법을 보았습니다.
public CollapsingRecordNodeItemList List
{
get { return this[0] as CollapsingRecordNodeItemList; }
}
이 메서드를 포함하는 클래스는 목록이나 반복 가능한 것이 아닙니다. 정확히 무엇을 this[0]
의미합니까?
수업에서 인덱서 를 찾으십시오 .
C #에서는 이러한 종류의 액세스를 허용하도록 인덱서를 정의 할 수 있습니다.
다음은 "SampleCollection"에 대한 공식 가이드의 예입니다.
public T this[int i]
{
get
{
// This indexer is very simple, and just returns or sets
// the corresponding element from the internal array.
return arr[i];
}
set
{
arr[i] = value;
}
}
다음은 공식 언어 사양 의 정의입니다 .
인덱서 어레이와 동일한 방식으로 인덱싱 할 개체를 가능하게하는 부재이다. 인덱서는 구성원의 이름 뒤에 구분 기호 [와] 사이에 기록 된 매개 변수 목록이 오는 것을 제외하고는 속성처럼 선언됩니다. 매개 변수는 인덱서의 접근 자에서 사용할 수 있습니다. 속성과 마찬가지로 인덱서는 읽기-쓰기, 읽기 전용 및 쓰기 전용 일 수 있으며 인덱서의 접근자는 가상 일 수 있습니다.
사양의 섹션 10.9 인덱서 에서 완전하고 완전한 정의를 찾을 수 있습니다 .
이것은 선언 유형 (또는 그 기본 클래스)에 "인덱서"가 있다는 것을 의미합니다. 이것은 아마도 int
(또는 유사)를 취하고 반환합니다 ... 무언가 (아마도 object
?). 이 코드는 인덱서의 get
접근 자를 호출하여 0
인덱스로 전달한 다음 반환 된 값을로 처리합니다 CollapsingRecordNodeItemList
(또는 null
반환 된 값이 그와 호환되지 않음).
예를 들면 :
public object this[int index] {
get { return someOtherList[index]; }
}
하지만 가장 쉬운 일은 그 단계로 들어가는 것입니다. 그것은 그것이 어디로 가고 있는지 정확하게 알려줄 것입니다.
IList
/ 이면 클래스 자체가 어떤 형식에서 상속한다고 가정하면 IList<T>
컬렉션의 첫 번째 요소를 반환하고 캐스팅하는 것입니다.
public class BarCollection : System.Collections.CollectionBase
{
public Bar FirstItem
{
get { return this[0] as Bar; }
}
#region Coming From CollectionBase
public Object this[ int index ] {
get { return this.InnerList[index]; }
set { this.InnerList[index] = value; }
}
#endregion
}
이 클래스 에서 item
속성의 get
메서드 를 호출하는 것을 의미합니다 . 클래스의 인덱서 라고합니다.
Indexers allow instances of a class or struct to be indexed just like arrays. Indexers resemble properties except that their accessors take parameters.
참고URL : https://stackoverflow.com/questions/16650223/what-does-this0-mean-in-c
'program tip' 카테고리의 다른 글
관리되지 않는 C ++ 클라이언트 용 WCF 서비스 만들기 (0) | 2020.12.09 |
---|---|
Rails / Rspec-컨트롤러에서 리디렉션 테스트 (0) | 2020.12.08 |
android.database.sqlite.SQLiteCantOpenDatabaseException : 알 수없는 오류 (코드 14) : 데이터베이스를 열 수 없습니다. (0) | 2020.12.08 |
Angular ui-router-상위 템플릿에서 전달 된 중첩 된 명명 된 뷰의 매개 변수에 액세스하는 방법은 무엇입니까? (0) | 2020.12.08 |
클래스 변수에 대한 Attr_accessor (0) | 2020.12.08 |