c#中的双指针等价物是什么? 我试图把C++代码转换成C语言,我遇到了双指针。我想知道如何在c#中实现双指针

c#中的双指针等价物是什么? 我试图把C++代码转换成C语言,我遇到了双指针。我想知道如何在c#中实现双指针,c#,c++,migration,pointer-to-pointer,C#,C++,Migration,Pointer To Pointer,如果我要说 MyClass **MyClasses; 它是这样初始化的 MyClasses = new MyClass*[ClassNums]; MyClasses[subnum]->MyMethod(); 在类内的另一个函数中,每个子项都在一个循环中初始化 for(num = 0; num < classnum; num++) { MyClasses[subnum] = new MyClass(); } 如何将其转换为c#?我试图使用MyClasses[]数组,但我

如果我要说

MyClass **MyClasses;
它是这样初始化的

MyClasses = new MyClass*[ClassNums];
MyClasses[subnum]->MyMethod();
在类内的另一个函数中,每个子项都在一个循环中初始化

for(num = 0; num < classnum; num++)
{
    MyClasses[subnum] = new MyClass();
}
如何将其转换为c#?我试图使用
MyClasses[]
数组,但我不太确定。此外,我无法测试它,因为它来自一个静态库,并且使用它的组件尚未转换为c。我应该使用泛型列表还是什么?

在本例中,外部指针用于说明可扩展范围,如这里的循环所示:

for(num = 0; num < classnum; num++)
{
    MyClasses[subnum] = new MyClass();
}

这里的
obj
是对一个引用的引用(对
MyClass
的引用),所有内容都会自动进行双解引用(或者如果您更改
obj
的值,则进行单次解引用赋值)。这也可以与双指针相媲美。

您能否给出原始代码,以及您尝试过的代码,更详细一点,但我确实建议找到指针周围的地方并避免使用它,除非完全必要。显然,它是这样使用的MyClasses[subnum]->MyMethod();这就是为什么我认为它应该是一个通用列表。如果是这样的话,我建议您尝试类似于MyClasses[]list=newmyclasses[ClassNums];然后它将是list[subnum].MyMethod();我尝试在C语言中实现它,但是我不确定它是否与C++中的双指针相同,因为我不太擅长C++,尤其是指针。至于代码转换的原因,我们试图通过C++实现为基础,将整个应用程序从C++移植到C语言。当然,这是由于客户的要求。我们大多数人都是c#dev,所以这是一个相当大的挑战。
MyClass[] arr = ...
...
for(int i = 0, i < arr.Length ; i++)
{
    arr[i] = new MyClass();
}
...
arr[i].MyMethod();
void SomeMethod(ref MyClass obj) {...}