我想为泛型类A编写一个扩展方法,该方法接受另一个泛型类型(在此示例中为TC),但我猜这不可能?
class Program
{
static void Main(string[] args)
{
var a = new A<B, B>();
a.DoIt<B>();
}
}
static class Ext
{
public static A<TA, TB> DoIt<TA, TB, TC>(this A<TA, TB> a)
{
return a;
}
}
class A<TA, TB> { }
class B { }
Foo<_,_,TypeICareAbout>(...)
代替Foo<LongTypeName, AnotherInferableType, TypeICareAbout>(...)
,这通常可以提高可读性。另一方面,F#不允许在封闭泛型类型上使用扩展成员,这是 C# 中非常好的功能。 - kvb