将一个继承的类转发给基类

时间:2013-06-13 12:37:09

标签: c# inheritance

假设我有一个基类

class baseClass
{  }

另一个继承自baseClass

的类
class foo : baseClass
{  }

我试图直接将其强制转换(baseClass)foo,但编译器说它无法完成。

foo是否有办法只获取baseClass

4 个答案:

答案 0 :(得分:5)

foo baseClass您不需要任何投射。你的代码应该没有任何问题:

var foo = new foo();
baseClass x = (baseClass) foo;

答案 1 :(得分:2)

如果您从班级 B 派生课程 A ,您可以随时引用 A ,就好像它是 B 。当然,在案件中并非如此。通常,您总是可以引用继承类的链。

答案 2 :(得分:1)

如果编译器抱怨这样的事情,那可能只是意味着你在几个Namespace中定义了几个baseClass,而你实际上没有引用正确的baseClass。

检查您的命名空间,它应该解决您的错误。

答案 3 :(得分:0)

这是一个具有不同命名空间的工作示例

namespace BaseNameSpace
{
    public class BaseClass
    {
        public string Name { get; set; }
    }
}

namespace TestNameSpace.Class
{

    public class TestClass : BaseClass
    {
        public string Address { get; set; }
    }
}

使用:

TestClass test1  = new TestClass();
BaseClass b = test1;

确保使用正确:

using BaseNameSpace;
using TestNameSpace.Class;