我有一组属于某个接口的类;
public class Platform : IGraphic
{
}
public class Decal : IGraphic
{
}
public class Character : IGraphic
{
}
public interface IGraphic
{
}
如果我设置一个IGraphic值指向像这样的贴花;
IGraphic graphic = new Decal();
稍后我怎样才能确定界面设置为哪个类?
答案 0 :(得分:1)
您可以使用以下方法确定接口的实现:
graphic.GetType()
答案 1 :(得分:1)
首先,类不属于接口,它们可以实现它。 现在,在我们定义它之后,您可以看到实现接口使您能够知道在实现接口的每个类中实现了这样的方法。 所以你的问题是倒退的,你可以为每个类不同地实现方法,这样你就不必知道你的对象的类型。
如果你坚持知道你可以使用反射的类型。 我建议你尽可能少地使用反射。 如果你不想描述你的程序的目的,也许我们可以帮助你避免反思(通常是一个更好的架构)
答案 2 :(得分:0)
使用graphic.GetType()
。
这将获得实例的Type
。
请注意,这适用于各种对象,而不仅仅适用于接口。
你可以想象也可以使用
if (graphic is Platform)
或
if (graphic is Decal)
等