访问c#中的c++ /CLI重载[]操作符

本文关键字:重载 操作符 CLI 中的 c++ 访问 | 更新日期: 2023-09-27 18:04:54

我有一个c++/CLI类:

public ref class Foobar
{
    public:
        // methods here etc..
        // operator overload
        double operator[](int index);
}

如果我尝试过,我如何从c#访问Foobar:

Foobar foo = new Foobar();
int i = foo[1]; 
我得到CS0021: Cannot apply indexing with [] to an expression of type 'Foobar'

访问c#中的c++ /CLI重载[]操作符

operator[]在c++/CLI(和所有。net语言)中得到特殊处理–它不是定义为一个操作符,而是定义为一个名为default的属性,即默认索引属性。

public ref class Foobar
{
public:
    // methods here etc..
    property double default[int];
}