【发布时间】:2019-08-18 22:02:30
【问题描述】:
有趣的是它奏效了。编译器对代码没有任何问题,尽管这是我从未见过的(可能是因为我是新手)。我想使用新继承的基页面/类作为存储常用代码的地方,这样我就不必复制任何东西。看这里:
public sealed partial class HumanPage : SpeciesBasePage;
public sealed partial class AnimalPage : SpeciesBasePage;
public class SpeciesBasePage : Page;
显然,它之所以有效,是因为 SpeciesBasePage 实现了 Page 类。因此,您还将看到相关的 XAML 页面将具有不同的基类作为其开始标记:
<local:SpeciesBasePage
x:Class="PageInheritanceProject.HumanPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
...>
<Grid>
<TextBlock Text="Hello, world!" />
</Grid>
</local:SpeciesBasePage>
这样做可以吗?谢谢!
【问题讨论】:
-
为什么它的工作很有趣?这正是 OOP 中继承的设计方式,不是吗?在您经常这样做之前,请阅读 FCoI(优先组合优于继承)清洁代码原则。
-
好点。我会纠正它,虽然你可以间接继承。 HumanPage 间接继承 Page。
-
“这样可以吗?” - 你有疑问吗?其中有很多具有“良好/最佳实践”要求的问题(这太抽象了,甚至无法考虑提出问题),其中许多只是“请查看我的代码并确认它是正确的”而没有任何问题陈述。对我来说这是codereview 请求,请务必询问right。