C# 利用元组(ValueTuple)在「堆栈」上创建数组的一个方法

通常,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}");
}

猜你喜欢

转载自blog.csdn.net/tom_221x/article/details/113602461