【发布时间】:2018-12-29 23:17:41
【问题描述】:
我的解决方案包含三个项目:
- 共享项目
- 包含一个
LowestLevel类和一个继承自LowestLevel的MidLevel类
- 包含一个
- 类库
- 包含对共享项目的引用
- 包含一个
HighestLevel类,继承自上述MidLevel类
- 控制台应用程序
- 包含对类库和共享项目的引用
我在下面包含了这些类的代码 - 请注意,每个项目都有自己的命名空间
namespace ClassLib
{
public class HighestLevel : MidLevel
{
public HighestLevel() { }
}
}
namespace SharedProj
{
public class MidLevel : LowestLevel
{
public MidLevel() { }
}
public class LowestLevel
{
public LowestLevel() { }
}
}
在我的控制台应用程序Program 类中,我正在尝试创建HighestLevel 类的新实例,就像这样
LowestLevel myclass = new HighestLevel();
但是这在 Visual Studio 中给出了一个错误,说明
Cannot implicitly convert type ClassLib.HighestLevel to SharedProj.LowestLevel
谁能帮我理解为什么会这样,以及如何解决它?当这三个类都在同一个项目/命名空间中时,似乎不会出现这个问题,所以这可能是由将这些类拆分到各个项目中的方法引起的。
【问题讨论】:
-
你真的需要使用共享项目吗?如今,这并不是真正推荐的做事方式。
-
老实说,可能不是。我以前从未使用过,购买这背后的想法是共享项目的内容将在几个不同的项目之间共享。我想我可以简单地将它转换为类库并以类似的方式使用它 - 你认为这会更可取吗?
-
你肯定想要类库项目。
标签: c# inheritance