2011-08-10 2 views
6

У меня есть класс C++/CLI:Access 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

Вы говорите об индексе * по умолчанию *. который является частным случаем * проиндексированных свойств *. –

Смежные вопросы