-2
C#7有一个新特性,它允许我们轻松定义元组,所以我们可以轻松地处理包含多个值的结构。C#7:元组和泛型
是否有任何方式使用元组作为泛型约束,或类似?例如,我试图定义如下方法:
public void Write<T>(T value)
where T : (int x, int y)
{
}
我意识到这个特殊的例子是相当无意义的,但我想其他场景中这将是非常有用的,其包含了另一个派生的类型的元组类型:
static void Main(string[] args)
{
var first = new Derived();
var second = new Derived();
var types = (t: first, u: second);
Write(types);
Console.ReadLine();
}
public static void Write((Base t, Base u) things)
{
Console.WriteLine($"t: {things.t}, u: {things.u}");
}
public class Base { }
public class Derived { }
这个例子不起作用,因为first
和second
是Derived
类型。如果我让他们的类型Base
这工作正常。