我有一组属于接口的类;
public class Platform : IGraphic
{
}
public class Decal : IGraphic
{
}
public class Character : IGraphic
{
}
public interface IGraphic
{
}如果我将一个IGraphic值设置为指向像这样的Decal;
IGraphic graphic = new Decal();在以后的某个时候,我如何确定接口被设置为哪个类?
发布于 2014-04-12 22:15:13
可以通过以下方法确定接口的实现:
graphic.GetType()发布于 2014-04-12 22:25:07
首先,类不属于接口,它们可以实现它。现在,在我们定义了它之后,您可以看到实现接口使您能够知道这些方法是在实现接口的每个类中实现的。因此,您的问题是向后的,您可以为每个类实现不同的方法,这样您就不必知道对象的类型。
如果你坚持知道类型,你可以使用反射。我建议你尽量少使用反射。如果你不想描述你的程序的目的,也许我们可以帮助你避免反射(通常-一个更好的架构)
发布于 2014-04-12 22:13:56
使用graphic.GetType()。
这将获得实例的Type。
注意,这适用于每种对象,而不仅仅是接口。
你也可以想象
if (graphic is Platform)或
if (graphic is Decal)等。
https://stackoverflow.com/questions/23036719
复制相似问题