-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
這工作正常。