Hello有没有办法约束静态类中定义的类的泛型方法?
static class Container {
class A {
}
class B {
}
}
static class ContainerExtension
{
//(where T is a class defined in class Container)
public int[] ToArray<T>(T array) {
}
}
答案 0 :(得分:2)
有没有办法约束静态类中定义的类的泛型方法?
不,没有。
唯一的类型限制是:
where T : new()
)where T : class
)where T : struct
)where T : Button
或其他)对于“包含在特定类型中”没有约束,我也不希望它成为一个新功能 - 它听起来像一个非常小众的用例。
你可以创建一个只有那些类型实现的接口,但这个接近我的建议。 (如果它是在同一个包含类中声明的私有接口,只有那些类可以实现它 - 但是泛型方法也需要是私有的。)