A のメンバーを一つの struct にまとめることがポイントになりそうです。
なお、B = A といった表現は無理です。メソッドで実現することになります。
class A
{
protected struct Inner
{
public int a;
public int b;
}
protected Inner _inner;
protected void CopyFrom(A other)
{
_inner = other._inner;
}
}
class B : A
{
string x;
public void CopyFromA(A other)
{
CopyFrom(other); // A.CopyFrom
//TODO: 残りのメンバーについてどうするか定義すること
}
}