7
|
R. Martinho Fernandes · 技术社区 · 15 年前 |
![]() |
1
4
您可以在构建时使用反射检查被包装对象上可用的方法。 只要打电话 Type.GetMethods() 在接口和要传入的类型上,并确保存在适当的方法。 编辑: 正如建议的那样 itowlson 还有一个处理动态类型的选项。如果检查传递的对象上是否存在IDynamicMetabObjectProvider接口,则可以调用 IDynamicMetaObjectProvider.GetMetaObject() . GetDynamicMemberNames() ,并使用此信息。 如果接口不存在,则可以只还原为type.getMethods()。 这也应该处理“动态”类型。 |
![]() |
2
1
我不知道有什么确切的方法来检查对象是否提供了一种特定的方法。当然,您可以使用反射,但只有当对象是.NET对象时,反射才有效。如果您确定它是,那么,正如前面所说,没有问题,只需对对象调用getType()并使用getMethod()进行检查。 另一方面,正如您自己所说的,即使此时的检查也不能保证对方法的调用在稍后会成功,所以我认为检查是无用的。让电话在实际通话时失败。也可能是您的检查显示对象没有提供特定的方法,但稍后,当您实际调用它时,它会提供。 |
![]() |
3
0
使用反射检查方法:
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |