Я оборачиваю некоторый код C++ в управляемый C++, чтобы получить к нему доступ в C#: я не могу понять, как заставить операторы правильно работать в C#
Я создаю в управляемом С++:
public ref class ClassCLI
{
public:
double val;
ClassCLI() {};
void operator ++() { val++; };
double% operator[](int i) { return val; }
};
Это работает в управляемом С++:
ClassCLI^ obj = gcnew ClassCLI();
obj++;
obj[0] = 12.0;
Но в C# я не могу использовать операторы ++ или [] напрямую, мне приходится использовать какое-то уродливое имя, которое противоречит назначению операторов.
var obj = new ClassCLI();
obj.op_Increment();
obj.op_Subscript(0) = 12.0;
Может ли кто-нибудь сказать мне, что я делаю неправильно? В некоторых сообщениях я говорю, что операторы должны быть статическими для С#, это легко для оператора ++, но не знаю, как это сделать для оператора []
obj++
в C#? Какая ошибка? - person Sinatr   schedule 12.05.2020