当前位置: 首页 > news >正文

C#通过反射获取相应的字段和值

C#通过反射获取相应的字段和值

https://www.cnblogs.com/bmyblogs/articles/9346843.html

C#通过反射获取相应的字段和值

代码比较简单,只作为简单的例子参考

首先先看运行的代码:

 

复制代码

 class Program
    {
        static void Main(string[] args)
        {
            UserInfo userInfo = new UserInfo();
            userInfo.ID = 1;
            userInfo.Name = "bailey";
            userInfo.CreateDate = DateTime.Now;
            userInfo.Number = Convert.ToDecimal(456.6467);

            string values = string.Empty;
            foreach (System.Reflection.PropertyInfo p in userInfo.GetType().GetProperties())
            {
                if (p.PropertyType == typeof(string))
                {
                    values += string.Format("{0}='{1}', ", p.Name, p.GetValue(userInfo));
                }
                if (p.PropertyType == typeof(int)|| p.PropertyType == typeof(uint))
                {
                    values += string.Format("{0}={1},", p.Name, p.GetValue(userInfo));
                }
                if (p.PropertyType == typeof(DateTime))
                {
                    values += string.Format("{0}='{1}', ", p.Name, p.GetValue(userInfo));
                }
                if (p.PropertyType == typeof(decimal) || p.PropertyType == typeof(double)|| p.PropertyType == typeof(float))
                {
                    values += string.Format("{0}={1}, ", p.Name, p.GetValue(userInfo));
                }
               
                if (p.PropertyType == typeof(bool))
                {
                    values += string.Format("{0}={1}, ", p.Name, p.GetValue(userInfo));
                }
                if (p.PropertyType == typeof(sbyte))
                {
                    values += string.Format("{0}={1}, ", p.Name, p.GetValue(userInfo));
                }
                if (p.PropertyType == typeof(byte) || p.PropertyType == typeof(short) || p.PropertyType == typeof(ushort) )
                {
                    values += string.Format("{0}={1}, ", p.Name, p.GetValue(userInfo));
                }
                if (p.PropertyType == typeof(long) || p.PropertyType == typeof(ulong))
                {
                    values += string.Format("{0}={1}, ", p.Name, p.GetValue(userInfo));
                }

                // values +=string.Format( "{0}={1},", p.Name, p.GetValue(userInfo));
                // Console.WriteLine("Name:{0} Value:{1}", p.Name, p.GetValue(userInfo));
            }
            Console.WriteLine(values);
            Console.ReadLine();
        }

    }

复制代码

 

再看对象:

 

复制代码

 class UserInfo {
        public int ID { get; set; }
        public string Name { get; set; }
        public DateTime? CreateDate { get; set; }
        public decimal? Number { get; set; }
        public bool IsUse { get; set; }
    }

复制代码

 

 

相关文章:

  • pbrt-perspective-we(Weight emit)
  • pbrt gamma
  • Unity Android 宏定义是 UNITY_ANDROID 不是 UNITY_Android
  • Unity 与 Android 互调用
  • Unity Windows 编辑器下,模拟 Android
  • Unity 转换平台
  • 生成特定分贝的音频波形
  • 声音分贝的概念,dBSPL.dBm,dBu,dBV,dBFS
  • 获取PCM音频数据的声音分贝值
  • 如何从wav数据判断音量的高低?
  • Audio 音频采样和音量
  • AudioClip 参数解析
  • Unity 导入 KeyFrame 动画后,看不到动画
  • Unity3D中Blendshapes之间的过渡方式
  • Unity中的mecnim和blendshape的冲突问题
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【comparator, comparable】小总结
  • 【知识碎片】第三方登录弹窗效果
  • 30天自制操作系统-2
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Angular 2 DI - IoC DI - 1
  • AWS实战 - 利用IAM对S3做访问控制
  • Brief introduction of how to 'Call, Apply and Bind'
  • EventListener原理
  • Flex布局到底解决了什么问题
  • Js基础知识(一) - 变量
  • Just for fun——迅速写完快速排序
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • python docx文档转html页面
  • Spring Cloud Feign的两种使用姿势
  • windows下使用nginx调试简介
  • 给第三方使用接口的 URL 签名实现
  • 坑!为什么View.startAnimation不起作用?
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 如何用vue打造一个移动端音乐播放器
  • 什么是Javascript函数节流?
  • 世界上最简单的无等待算法(getAndIncrement)
  • 小程序开发之路(一)
  • 学习Vue.js的五个小例子
  • Spring第一个helloWorld
  • #前后端分离# 头条发布系统
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (30)数组元素和与数字和的绝对差
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (pojstep1.3.1)1017(构造法模拟)
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • .axf 转化 .bin文件 的方法
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .net6使用Sejil可视化日志
  • .net下的富文本编辑器FCKeditor的配置方法
  • /bin/bash^M: bad interpreter: No such file or directory