【问题标题】:Abstract Class inside an Interface?接口内的抽象类?
【发布时间】:2011-09-08 20:20:53
【问题描述】:

我将拥有几个继承自基本抽象类的类。

我想确保每个子类都有一个特定的嵌套类,其实际字段取决于开发人员。

在基本 abs 中嵌套一个抽象类。 class 似乎没有起作用,因为在实际编码过程中,嵌套的 abs.类和子类中的嵌套类都可用(显示在智能感知中)。

让基类实现一个包含类的接口是行不通的,因为接口只指可以实现的方法,而不是类(意味着实现接口需要实现方法,但没有说明接口中的类。

有什么想法吗?

来自 cmets 的澄清:

我有三个表,它们共有大约 50 个字段。它们每个都有一组独特的字段。

我想为每个类设置一个类(因为它们确实具有不同的业务功能),但希望有一些与公共领域相关的共享方法。

所以这些方法进入了基础 abs 类。我还希望在公共字段的基类中有一个嵌套类。不过,对于唯一字段,我想确保编写子类的人包含唯一字段的嵌套类,因此需要嵌套的 abs 类或其他任何东西

我希望开发人员将这些独特的字段组合成一个嵌套类。所以我们有两组嵌套类:“CommonData”和“UniqueData”。这个数字大约是 190 个常见字段和最多 10 个唯一字段,因此我正在尝试建立一些分组以使事情更容易处理。

【问题讨论】:

  • 你能解释一下为什么你需要一个抽象的嵌套类吗?也许对实际问题有更优雅的解决方案? (您描述的是一个解决方案的尝试,但没有提供它试图解决的问题)。
  • 对于您要解决的任何问题,嵌套类都不太可能是正确的方法。告诉我们您真正想要实现的目标如何?
  • 我有三个表,它们共有大约 50 个字段。它们每个都有一组独特的字段。我想为每个类设置一个类(因为它们确实具有不同的 biz 功能),但希望有一些与公共领域相关的共享方法。所以这些方法进入基础 abs 类。我还希望在公共字段的基类中有一个嵌套类。但是,对于唯一字段,我想确保编写子类的人包含唯一字段的嵌套类,因此需要嵌套的 abs 类或其他任何东西。
  • 让普通字段直接在基类上定义
  • 谢谢,但你错过了我的意思。这是我希望开发人员将其组合成一个嵌套类的独特字段。所以我们有两组嵌套类:“CommonData”和“UniqueData”。 (实际上这个数字更像是 190 个常见字段和最多 10 个唯一字段,因此我正在尝试建立一些分组以使事情更容易处理。)

标签: vb.net abstract


【解决方案1】:

只需向嵌套类类型的基类(或接口)添加一个属性

【讨论】:

  • 我提前不知道嵌套类(UniqueData)中的字段。
  • 我说的是共享字段
  • 谢谢,我不用担心这些。
【解决方案2】:

让基类实现一个包含类的接口是行不通的,因为接口只指可以实现的方法,而不是类(意味着实现接口需要实现方法,但对界面。

VB.Net 可以在接口内部声明类,C# 不能。

Public Interface Foo

    MustInherit Class Bar

    End Class

End Interface

不过,它可能有点太奇特了——如果我在一些代码中找到它,我会很困惑。

【讨论】:

  • 我确实尝试过类似的方法。问题在于智能感知。使用子类时,“Bar”和“BarThatInheritsBar”都会出现在 Intellisense 中。
  • 我刚刚发现了类似的东西,这让我很困惑。我不知道这是可能的。
猜你喜欢
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 2017-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
  • 2010-12-01
相关资源
最近更新 更多