可以在C#中进行向下转换为没有数据成员的派生类吗?

时间:2010-10-21 01:55:38

标签: c# casting

我正在尝试使用继承创建一个包装器。实际上我正在使用具有非常通用名称的反序列化代码,我希望在包装内部对象的方法上保存一些键击。

public class Base
{
  public string Foo { get; set; }
}

public class Derived : Base
{
  public string Bar { get { return this.Foo; } }
}

Base base = new Base();

Derived d = (Derived)base;

我试图向下倾斜时遇到错误。这种类型的东西在C#中是否可行?派生类中没有其他数据,所以我的C ++大脑告诉我可能会有一个向下倾斜......

1 个答案:

答案 0 :(得分:8)

不。类标识不仅仅取决于数据布局(对于非POD类型,在C ++中也是如此)。

您可能希望使用扩展方法来添加不需要存储其他数据的其他功能。