【问题标题】:Set Property Type to a Type of a Class将属性类型设置为类的类型
【发布时间】: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> 类是通用的。

标签: c# .net xamarin mono


【解决方案1】:

试试这个:

public class MyClass<MyType>
{
   public MyType MyProperty { get; set; }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多