如何通过索引正确地索引结构中的字段

时间:2017-07-05 07:58:43

标签: c# unsafe

我有以下代码。

public class BoxCorners
{
    public Vector3 V000;
    public Vector3 V001;
    public Vector3 V010;
    public Vector3 V011;

    public Vector3 V100;
    public Vector3 V101;
    public Vector3 V110;
    public Vector3 V111;

    public Vector3 Index(int i)
    {
        if (i > 7)
        {
            throw new IndexOutOfRangeException($"{i}");
        }
        unsafe
        {
            fixed (Vector3 * v = &V000)
            {
                return v[i];
            }
        }

    }
}

其中Vector3是一个结构,还有三个双打。

public struct Vector3 {
   double X;double Y; double Z;
}

以上是按数字索引字段的有效方法吗?或者我是否必须指定一些包装属性以确保其有效。

用例是有时我需要按名称索引,有时需要按编号索引。如果能解决一些性能问题,我很乐意使用不安全的代码处理金属。此代码用于运行数百万次的非常紧密的循环中。物理引擎类型的东西如此之快比漂亮更好。

0 个答案:

没有答案