所以基本上我有一个名为A的超类,它的子类是B和C。有一个模型类D。B 类和 C 类共享相同的模型 D 类。
但是,有一个名为 [ID] 的属性不属于类 C,但它属于类 B。
当我使用 C 类时,如何"隐藏"属性 [ID]?
使用接口:
interface IBComposite
{
int ID {get;}
string Name {get;set;}
}
interface ICComposite
{
string Name {get;set;}
}
class D : IBComposite, ICComposite
{
public int ID {get; set;}
public string Name {get; set;}
}
class B
{
private IBComposite myD;
public B( IBComposite d ){ myD = d; }
// Will "see" ID and Name on "myD"
}
class C
{
private ICComposite myD;
public C( ICComposite d ){ myD = d; }
// Will "see" only Name on "myD"
}