0

这是我无法转换的代码行:

Vector3 n1 = m.normals.get((int) face.normal.X - 1);

我不确定这在 c# 中的含义是什么,因为我已经尝试了很多东西。我认为这也可能是由于我的列表有问题:

class Model
{
    public List<Vector3> vertices = new List<Vector3>();
    public List<Vector3> normals = new List<Vector3>();
    public List<Face> faces = new List<Face>();

}

他们应该是:

class Model
{
    public List<Vector3> vertices = new ArrayList<Vector3>();
    public List<Vector3> normals = new ArrayList<Vector3>();
    public List<Face> faces = new ArrayList<Face>();

}

我也不知道 ListArray 在 c# 中翻译成什么。

任何帮助将不胜感激 :)

4

1 回答 1

4
Java               C#
------------    --------
List<T>      is IList<T>   // Interface
ArrayList<T> is List<T>    // Class implementing the interface

你可以像这样翻译你的代码:

class Model
{
    public IList<Vector3> vertices = new List<Vector3>();
    public IList<Vector3> normals = new List<Vector3>();
    public IList<Face> faces = new List<Face>();
}

Javaget变成了 C# 的indexer,所以

Vector3 n1 = m.normals.get((int) face.normal.X - 1);

变成

Vector3 n1 = m.normals[(int)face.normal.X - 1];
于 2013-04-28T10:00:38.380 回答