Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Access C++/CLI Overloaded [] Operator in C#

Tags:

c#

c++-cli

I have a C++/CLI class:

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

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

How do I access Foobar from C# given that I've tried:

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

and I get CS0021: Cannot apply indexing with [] to an expression of type 'Foobar'

like image 974
Seth Avatar asked Aug 10 '11 03:08

Seth


1 Answers

operator[] gets special treatment in C++/CLI (and all .NET languages) – rather than being defined as an operator, it's defined as a property named default, known as the default index property.

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

    property double default[int];
}
like image 164
ildjarn Avatar answered Sep 30 '22 14:09

ildjarn