C# 如何在csharp中访问泛型类的子类?
我有一个C语言的简单问题: 我在通用类框中嵌入了一个类属性,如下所示:C# 如何在csharp中访问泛型类的子类?,c#,generics,reference,C#,Generics,Reference,我有一个C语言的简单问题: 我在通用类框中嵌入了一个类属性,如下所示: public class Box<E> where E : Box{ public class Properties { } } 如何从外部类引用子类属性? 我需要与此java语句等效的内容: Shape<?>.Properties prop = new Shape<?>.Properties(); 谢谢你,你做不到。您必须指定E 属性与类和形状不同 泛型类声明中包含的
public class Box<E> where E : Box{
public class Properties {
}
}
如何从外部类引用子类属性?
我需要与此java语句等效的内容:
Shape<?>.Properties prop = new Shape<?>.Properties();
谢谢你,你做不到。您必须指定E 属性与类和形状不同 泛型类声明中包含的每个类型声明都是 隐式地创建泛型类型声明。在编写对 嵌套在泛型类型中的类型,包含构造的类型, 包括其类型参数,必须命名
不行。如果属性不需要E,经典解决方案如下:
public class Box {
// So that it can't be instantiated, or you could make the class abstract
protected Box()
{
}
public class Properties {
}
}
public class Box<E> : Box {
}
哦,我不知道。。。所以Csharp?@Shatazone no中没有通配符。您可以绕过这个指定iProperty、非泛型接口的问题,并在方法/变量声明中使用它,但不能使用它来实例化Shape.Properties的对象。