开发者

Can a downcast to a derived class with no data members be done in C#?

开发者 https://www.devze.com 2023-01-21 05:19 出处:网络
I\'m attempting to make a wrapper using inheritance.In reality I am working with de-serialization code that has very generic names and I am looking to save a few keystrokes over the method that wraps

I'm attempting to make a wrapper using inheritance. In reality I am working with de-serialization code that has very generic names and I am looking to save a few keystrokes over the method that wraps an inner object.

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

public cla开发者_高级运维ss Derived : Base
{
  public string Bar { get { return this.Foo; } }
}

Base base = new Base();

Derived d = (Derived)base;

I get an error trying to downcast. Is this type of thing possible in C#? There's no additional data in the derived class so my C++ brain is telling me a downcast is possible...


Nope. Class identity is determined by more than just data layout (and that's true in C++ too for non-POD types).

You might want to look into using extension methods to add additional functionality that doesn't require storage of additional data.

0

精彩评论

暂无评论...
验证码 换一张
取 消