在Class1中隐藏Class3实例的属性并显示Class2

本文关键字:属性 显示 Class2 实例 Class1 隐藏 Class3 | 更新日期: 2023-09-27 18:21:23

我得到了Class1Class2,它们都有属性为MyNameClass3的实例。。。是否可以在Class1中隐藏Class3实例的属性MyName而仅在Class2中显示?非常感谢。

在Class1中隐藏Class3实例的属性并显示Class2

我建议从Class3中删除MyName,然后创建一个从Class3派生并具有属性MyNameClass4。创建一个Class4的实例,您想在其中"显示"此属性,并创建Class3的实例,在其中"隐藏"此属性。

创建两个实现相同接口的类。
public class Class3 : IClass
{
}
public class Class4 : IClass
{
    public string MyName{get;set;} 
}
public class Class1
{
    IClass _IClass;
    public Class1(IClass class)
    {
        this._IClass = class;
    }   
}
public class Class2
{
    IClass _IClass;
    public Class2(IClass class)
    {
        this._IClass = class;
    }   
}

当您创建Class1的实例时,Class2会注入相关的事件实现。

Class1 class1 = new Class1(new Class3());
Class2 class2 = new Class2(new Class4());