2011-08-10 5 views
6

나는 C++/CLI 클래스가 있습니다액세스 C++/CLI 오버로드 [] C#에서 운영자

public ref class Foobar 
{ 
    public: 
     // methods here etc.. 

     // operator overload 
     double operator[](int index); 
} 

어떻게 내가 해봤 주어진 C 번호에서 Foobar에 액세스 할을 :

Foobar foo = new Foobar(); 
int i = foo[1]; 

및 나는 CS0021: Cannot apply indexing with [] to an expression of type 'Foobar'

답변

6

operator[]이 연산자로 정의되기보다는 C++/CLI (및 모든 .NET 언어) –에서 특별한 대우를 받으면, a default이라는 속성 (the default index property)

public ref class Foobar 
{ 
public: 
    // methods here etc.. 

    property double default[int]; 
} 
+1

* 기본 인덱서 *에 대해 이야기하고 있습니다. * 인덱스 된 속성 *의 특별한 경우입니다. –