是否有一种在.NET中实现固定大小数组的良好方法而不需要使用unsafe代码?
我的目标是创建一个值类型,它代表可以嵌入(作为成员包含)到其他类型中的固定大小数组 - 即我希望特别避免将数组作为声明它的类型的单独对象创建。
我意识到.NET的数组实现非常出色并且在CLR/CIL级别受支持 - 并不想争论是否只使用数组...这里的探讨是关于安全、固定大小和价值类型实现是否可能达到几乎同样好的效率。
是否有一种在.NET中实现固定大小数组的良好方法而不需要使用unsafe代码?
我的目标是创建一个值类型,它代表可以嵌入(作为成员包含)到其他类型中的固定大小数组 - 即我希望特别避免将数组作为声明它的类型的单独对象创建。
我意识到.NET的数组实现非常出色并且在CLR/CIL级别受支持 - 并不想争论是否只使用数组...这里的探讨是关于安全、固定大小和价值类型实现是否可能达到几乎同样好的效率。
public struct EmbeddedArray<T>
{
private T _element0;
private T _element1;
private T _element2;
public int Length { get { return 3; } }
public T this[int index]
{
get
{
switch (index)
{
case 0:
return _element0;
case 1:
return _element1;
case 2:
return _element2;
}
throw new ArgumentOutOfRangeException("index");
}
}
}