场景:
有一个公共变量(PublicInstance)引用了多个类产生的实例。这些类中的一部分实现了接口(IEnterDataDisplay),实现此接口的类需要执行接口中的方法,否则不需要。如何判断当前实例是否实现了接口(IEnterDataDisplay)?
namespace YKP.UI.JxMgr
{
interface IEnterDataDisplay
{
void Display();
}
}
方法一:as返回对同一个对象的一个非null引用,不会抛出异常。强制类型转换会抛出异常。
class Class1
{
public void doFun()
{
IEnterDataDisplay ie = Instance as IEnterDataDisplay;
if (ie != null)
{//实现了
ie.Display();
}
}
}
方法二:is检查一个对象是否兼任与指定的类型,并返回一个Boolean值:true或false。is操作符永远不会抛出异常!
public void doFun()
{
if (Instance is IEnterDataDisplay)
{//实现了
Instance.Display();
}
}
方法三:
public void doFun()
{
if (Instance.GetType().GetInterface("IEnterDataDisplay") != null)
{//实现了
Instance.Display();
}
}
https://www.cnblogs.com/studydp/p/9045860.html
https://www.cnblogs.com/FengTime/p/12461798.html?ivk_sa=1024320u