我正在尝试将一些 Ogre 代码翻译成它的 C# 版本,但遇到了一个问题:

    const size_t nVertices = 8;
    const size_t vbufCount = 3*2*nVertices;

    float vertices[vbufCount] = {
            -100.0,100.0,-100.0,        //0 position
            -sqrt13,sqrt13,-sqrt13,     //0 normal
            //...
           -sqrt13,-sqrt13,sqrt13,     //7 normal
    };

基本上,C# 中不存在 const size_t,并且不能使用 const int 来声明数组的大小。

我想知道如何声明具有常量值的数组?

最佳答案

size_t 是一个 typedef(有点像 #define 宏),它基本上是另一种类型的别名。它的定义取决于 SDK,但通常是 unsigned int

无论如何,在这种情况下,这并不重要,因为它们是常量,所以你知道 nVertices 是 8,vbufCount 是 48。你可以在 C# 中这样写:

const int nVertices = 8;
const int vbufCount = 3 * 2 * nVertices;

float[] vertices = new float[vbufCount] {
    -100.0,100.0,-100.0,        //0 position
    -sqrt13,sqrt13,-sqrt13,     //0 normal
    //...
    -sqrt13,-sqrt13,sqrt13,     //7 normal
    };

关于c# - C# 中 C++ const size_t 的等价物是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14788481/

10-09 06:22