Access C ++ / CLI перегружен оператор [] в C # - PullRequest
6 голосов
/ 10 августа 2011

У меня есть класс C ++ / CLI:

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'

1 Ответ

6 голосов
/ 10 августа 2011

operator[] получает специальную обработку в C ++ / CLI (и всех языках .NET) - вместо того, чтобы быть определенным как оператор, он определяется как свойство с именем default, известное как свойство индекса по умолчанию .

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

    property double default[int];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...