从C#中托管C ++向用户操作员发布的问题

问题描述 投票:0回答:1

我在托管C ++中包装了一些C ++代码以在C#中对其进行访问:我不知道如何使运算符在C#中正常工作

我在托管C ++中创建:

public ref class ClassCLI
{
public:
    double val;
    ClassCLI() {};
    void operator ++() { val++; };
    double% operator[](int i) { return val; }


};

这在托管C ++中有效:

ClassCLI^ obj = gcnew ClassCLI();
obj++;
obj[0] = 12.0;

但是在C#中,我不能直接使用运算符++或[],我必须使用一些难看的名称来破坏运算符的目的。

var obj = new ClassCLI();
obj.op_Increment();
obj.op_Subscript(0) = 12.0;

可以告诉我我做错了什么吗?我说过,在某些帖子中,对于C#来说,运算符应该是静态的,对于operator ++来说很容易,但是不确定如何对operator []进行操作。

我在托管C ++中包装了一些C ++代码以在C#中对其进行访问:我不知道如何使运算符在托管C ++中创建的C#中正常工作:public ref class ClassCLI {public:double ...

c# operator-overloading managed-c++
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.