通常,new[]
出的数组在堆上,struct
可以在堆栈上,但不能使用index
索引访问,而想要在堆栈上使用index
索引,可以给struct
添加索引方法,如:
public float this [int index] {
get
{
switch (index)
{
case 0: return x;
case 1: return y;
}
}
set
{
switch (index)
{
case 0: x = value; break;
case 1: y = value; break;
}
}
}
亦或是,使用元组来进行转换,如:
// ValueTuple实现了ITuple接口
var values = (ITuple) (1, 2, 3);
for (var i = 0; i < values.Length; ++i)
{
var value = (int) values[i];
Console.WriteLine($"{value}");
}