public static class tuple_extentions
{
public static Vector2 mul(this Tuple<Vector2 v, float f>)
{
return v * f;
}
}
public void main()
{
Tuple.Create(new Vector2(4, 3), 2).mul(); // works
Tuple.Create(2, new Vector2(4, 3)).mul(); // doesn't work
}
有没有办法实现这个或类似的东西,不需要多个定义,仍然使用Intelisence,有或没有扩展和Tuple类。
例如,3个这样的参数最多需要6个定义。答案 0 :(得分:3)
很遗憾,无法制作适用于所有Tuple
组合的通用扩展方法。 C#没有这样的设施。必须为您希望其工作的每个Tuple
类型提供不同的扩展名
答案 1 :(得分:1)
不幸的是,你不能抽象出元组的元素。要获得此功能,您需要某种异类列表。 http://jeff.cutsinger.org/blarg/2011/03/27/heterogeneous-lists.html有一个很好的设置可以扩展。