C# object类型与dynamic类型的使用

获取动态变化的类型属性

例:

var类型的参数a中包含属性Name或Age

获取这个不固定的数据

首先验证a中存在的是什么属性

复制代码
        /// <summary>
        /// 验证object类型是否存在某属性
        /// </summary>
        /// <param name="obj">数据</param>
        /// <param name="propertyName">属性名</param>
        /// <returns></returns>
        public static bool HasProperty(object obj, string propertyName)
        {
            var type = obj.GetType();
            var propertyInfo = type.GetProperty(propertyName, System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);

            return (propertyInfo != null);
        }
复制代码

定义一个string,来储存属性名

string name="Name";

加入Name数据是string类型

string data= (dynamic)a.GetType().GetProperty(name).GetValue(a);

将a转为dynamic类型,然后通过GetType().GetProperty(name)获取属性类型,最后通过GetValue(a)获取a中这个属性的数据

如果a中类型固定

可以直接通过(dynamic)a.Name获取

 

posted @   HoFei1113  阅读(102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
点击右上角即可分享
微信分享提示