编程语言
首页 > 编程语言> > 为什么C CLI索引属性在C#中不起作用?

为什么C CLI索引属性在C#中不起作用?

作者:互联网

有两个项目,One C CLI和另一个C#项目.
C CLI程序在C#项目中引用.

一切都很好,除了索引属性不起作用.
C CLI代码:

property Nullable< int> PVarInt[System::String^] {
    Nullable<int> get(System::String^ inx){
    }
    void set(System::String^ inx, Nullable< int>  newx){
    }
}

C#中的代码显示为两个set和get方法,如下所示:

get_PVarInt(..)
set_PVarInt(..)

这是一个错误吗?有解决方案来解决这个问题吗?为什么会发生这种情况?

解决方法:

C/C++LI具有可从C#获得的索引属性:
例:

public ref class ClassWithIndexer
{
private:
    array<int> ^x;
public:
    property int default[int]
    {
        int get(int index)
        {
            return x[index];
        }
        void set(int index, int value)
        {
            x[index] = value;
        }
    }
};

标签:c,net,visual-c,c-cli,c-2
来源: https://codeday.me/bug/20190901/1781039.html