public class a{
  public string x1 {get;set;}
  public string x2 {get;set;}
  public string x3 {get;set;}
}

public class b:a{
}

Obviously var foo = (b)new a(); will throw a casting error at runtime.

The only other way I can think to assign all the properties of an already instantiated and populated a is to manually copy each one over into a fresh instance of b.

Is this correct?

Edit
Report