2011-08-10 16 views
6

tengo una clase de C++/CLI:Acceso C++/CLI sobrecargado [] operador en C#

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

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

¿Cómo se accede Foobar desde C# dado que yo he intentado:

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

y Obtengo CS0021: Cannot apply indexing with [] to an expression of type 'Foobar'

Respuesta

6

operator[] recibe un tratamiento especial en C++/CLI (y todos los lenguajes .NET) – en lugar de definirse como un operador, se define como un propiedad llamada default, conocida como the default index property.

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

    property double default[int]; 
} 
+1

Estás hablando del * indexador predeterminado *. que es un caso especial de * propiedades indexadas *. –

Cuestiones relacionadas