2011-08-10 56 views
6

我有一個C++/CLI類:訪問C++/CLI重載[]運算符在C#

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

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

如何訪問Foobar從C#因爲我已經試過:

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

和我得到CS0021: Cannot apply indexing with [] to an expression of type 'Foobar'

回答

6

operator[]在C++/CLI(和所有.NET語言)中獲得特殊待遇–而不是被定義爲運算符,它被定義爲名爲default的財產,被稱爲the default index property

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

    property double default[int]; 
} 
+1

你說的是*默認索引器*。這是*索引屬性*的特例。 –