C#:根据对象隐藏一些模型属性

时间:2018-03-19 17:33:11

标签: c# model polymorphism .net-core

所以基本上我有一个名为A的超类,它的子类是B和C.有一个模型类D.类B和类C共享相同的模型类D.

但是,有一个名为[ID]的属性不属于C类,但它属于B类。

当我使用C类时,如何“隐藏”属性[ID]?

1 个答案:

答案 0 :(得分:2)

使用界面:

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"
}