【问题标题】:Inheritable class-specific properties in c#?c#中可继承的特定于类的属性?
【发布时间】:2021-07-01 12:29:23
【问题描述】:

可能我在这里需要一个设计模式:我有一个按类型生成实例的工厂。我希望用户能够选择类型,所以我需要类型的标题,然后是类型的共同祖先的列表。

现在,我想枚举列表并打印标题。 (不能这样做,静态标题属性无法从祖先访问)

然后,我想打印一个实例的标题。无法执行此操作,因为无法从实例访问类属性。

如果我使用连接类型和标题的字典,则标题再次无法从实例访问,也无法从类型等中访问。

我已经使用 Delphi 20 年了,每天都在使用虚拟构造函数和虚拟类属性。我有点喜欢 C#,但多年后,我仍然没有合适的解决方案来解决这些问题。 (提前感谢您的帮助)

【问题讨论】:

    标签: c# static virtual


    【解决方案1】:

    使用System.Reflection,您可以枚举程序集的所有类型,检查它们是否派生自给定的基类型或实现某个接口。 您还可以访问非公共字段或属性(静态或实例)。 所以可能这是要走的路。

    如果类层次结构是您自己的代码,您也可以/应该简单地重新设计它以访问现在受到限制的成员..

    【讨论】:

      猜你喜欢
      • 2013-04-13
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 2017-09-01
      • 2022-07-27
      • 2013-06-16
      • 2011-01-22
      • 1970-01-01
      相关资源
      最近更新 更多