这是我在转换时遇到问题的代码行:
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# 中翻译成什么。
任何帮助将不胜感激:)
最佳答案
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>();
}
Java 的 get
变成了 C# 的 indexer ,所以
Vector3 n1 = m.normals.get((int) face.normal.X - 1);
变成了
Vector3 n1 = m.normals[(int)face.normal.X - 1];
关于java - 将一些 Java 转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16261690/