4

2つのプロジェクトがあります。1つはC++CLIで、もう1つは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#のそのコードは、次のような2つのセットとgetメソッドとして表示されます。

get_PVarInt(..)
set_PVarInt(..)

これはバグですか?これを修正するための解決策はありますか?なぜこれが起こったのですか?

4

2 に答える 2

3

C# は、プロパティ以外のインデックス付きプロパティをサポートしていませんthis

ただし、.NET フレームワークはそうするので、それをサポートする言語で作成されたインデックス付きプロパティは、C# ではget_Method1対 1 になります。set_Method

于 2013-03-12T10:29:58.710 に答える
2

C ++ / CLIには、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;
        }
    }
};
于 2013-03-12T14:40:44.760 に答える