我最近在一次采访中被问到是否知道有一种方法可以绕过/规避 .NET 限制,即类只能从单个类继承,而不能从多个类继承。显然我不知道答案,否则我不会在这里问这个问题。缺少实现多个接口(这似乎是一个错误的答案)或将类链接到一个继承自另一个继承自另一个的类,还有另一种我不知道的方法来完成这个吗?
问问题
119 次
1 回答
2
缺少实现多个接口(这似乎是一个错误的答案)或将类链接到一个继承自另一个继承自另一个的类,还有另一种我不知道的方法来完成这个吗?
不,我怀疑实现多个接口是正确的答案。
这是相当标准的。假设您有课程Foo
,Bar
并且您希望课程从和FooBar
中“继承” 。然后你创建接口and和 have and 。然后你会定义和标准实现将是Foo
Bar
IFoo
IBar
Foo : IFoo
Bar : IBar
FooBar : IFoo, IBar
class FooBar : IFoo, IBar {
private readonly IFoo foo = new Foo();
private readonly IBar bar = new Bar();
// or pass these in as dependencies
public void Moo() {
foo.Moo();
}
public void Mar() {
bar.Mar();
}
}
是的,可能会写很多东西,但这并不难(VS 或 R# 中有一些工具可以帮助加快速度)。
于 2013-08-04T15:24:11.423 回答