我正在尝试将以下内容(缩短可读性)转换为C#并遇到问题

#define DISTMAX 10
struct Distort {
  int    a_order;
  double a[DISTMAX][DISTMAX];
};

我以为在结构中这是使用“固定”的简单情况,但是我仍然遇到问题。

这就是我所拥有的(在页面上方具有定义):
const int DISTMAX = 10;
struct Distort
{
        int a_order;
        fixed double a[DISTMAX,DISTMAX];
}

我得到的错误只是语法错误,由于我期望是一维数组的局限性,因此期望出现[]和[]。

有没有解决的办法?

最佳答案

固定大小的缓冲区只能是一维的。您需要使用:

unsafe struct Distort
{
     int a_order;
     fixed double a[DISTMAX * DISTMAX];
}

然后进行适当的算术运算以获得单个值。

关于c# - C#中的结构中的多维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/665573/

10-09 03:08