给C#元组订单扩展方法或类似方法

时间:2014-03-16 14:19:42

标签: c# tuples

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个定义。

2 个答案:

答案 0 :(得分:3)

很遗憾,无法制作适用于所有Tuple组合的通用扩展方法。 C#没有这样的设施。必须为您希望其工作的每个Tuple类型提供不同的扩展名

答案 1 :(得分:1)

不幸的是,你不能抽象出元组的元素。要获得此功能,您需要某种异类列表。 http://jeff.cutsinger.org/blarg/2011/03/27/heterogeneous-lists.html有一个很好的设置可以扩展。