摘要到一个通用的接口

时间:2017-02-05 16:06:10

标签: c# class interface

我有2个派生对象,它们都实现了一个公共接口,我把这个接口放到了GUI中,但是GUI根据按下的按钮接受了2个不同的公共接口列表。

这两个列表包含两个独立的具体类,但是被抽象为接口,因此一个表单可以修改两个不同的对象。

我的问题是如果我将它们存储为公共接口,我如何在程序中查看它们作为实际对象,或者我可以将它们存储为具体对象然后将它们转换为接口只是为了它们可以使用我的表格,然后将其更改回来。

这更像是一个设计程序而不是编码问题,是否有任何设计模式可以看到这个?

1 个答案:

答案 0 :(得分:0)

将其重新投射回具体类型。

示例:

var foo = commonInterfaceObject as ConcreteType;
if (foo != null)
{
    // work with concrete type here
}

如果要将其放回常用接口列表中,则无需强制转换(因为ConcreteType实现了接口)。

示例:

var interFaceList = new List<ICommonInterface>();

// add back
interFaceList(foo); // foo is your concrete type