【发布时间】:2015-09-04 23:49:41
【问题描述】:
在 C# 中,可以将属性的类型设置为 Type,如下所示:
public Type Target { get; set; }
我很想做这件事,除了更具体地说明允许的类型,例如只允许某个抽象类的子类。我尝试了以下方法,但由于明显的原因它无法编译:
public typeof(Page) Target { get; set; }
有没有办法在 C# 中做到这一点?
【问题讨论】:
-
是的,它叫泛型
-
我对你想要什么感到困惑。您不想要一个包含某个类型的子类实例的属性,您想要一个允许
Type的值的属性,它是Page的子类?不,你不能那样做。 -
@RonBeyer 你的评论是最接近的东西(泛型)。如果您使用泛型编写答案,可能使用 where (stackoverflow.com/questions/7810550/…),我会将其标记为正确。
-
在 C# 中,
Type不是通用的,所以你不能这样做。我想你问这个问题是因为 Java 的Class<E>类是通用的。