如何检查对象是否具有某种方法/属性?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

也许使用动态模式?您可以使用Dynamic关键字调用任何方法/属性,对吗?例如,如何在调用myDynamicObject.DoStuff()之前检查该方法是否存在?

提问于
用户回答回答于

你可以这样写:

public static bool HasMethod(this object objectToCheck, string methodName)
{
    var type = objectToCheck.GetType();
    return type.GetMethod(methodName) != null;
} 

可以做一个扩展方法,然后像这样使用它

myObject.HasMethod("SomeMethod");
用户回答回答于

通过反射

 var property = object.GetType().GetProperty("YourProperty")
 property.SetValue(object,some_value,null);

方法也类似

扫码关注云+社区