为了账号安全,请及时绑定邮箱和手机立即绑定

测试动态变量上的属性是否可用

测试动态变量上的属性是否可用

C#
HUWWW 2019-11-13 15:13:06
我的情况很简单。在我的代码的某个地方,我有这个:dynamic myVariable = GetDataThatLooksVerySimilarButNotTheSame();//How to do this?if (myVariable.MyProperty.Exists)   //Do stuff因此,基本上我的问题是如何检查(不引发异常)动态变量上是否有某个属性可用。我可以,GetType()但是我宁愿避免这种情况,因为我真的不需要知道对象的类型。我真正想知道的只是一个属性(或方法,如果使生活更轻松)是否可用。有指针吗?
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

我认为dynamic除非您重新实现了在C#编译器中处理动态绑定的方式,否则就无法在不尝试访问变量的情况下找出变量是否具有某个成员。根据C#规范,这可能包括很多猜测,因为它是实现定义的。


因此,如果失败,您实际上应该尝试访问该成员并捕获异常:


dynamic myVariable = GetDataThatLooksVerySimilarButNotTheSame();


try

{

    var x = myVariable.MyProperty;

    // do stuff with x

}

catch (RuntimeBinderException)

{

    //  MyProperty doesn't exist


查看完整回答
反对 回复 2019-11-13
  • 3 回答
  • 0 关注
  • 293 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信