利用反射(Reflection)处理对象
创建一个学生类:
public class Student
{
public int Id { set; get; }
public string Name { set; get; }
public string Sex { set; get; }
public int Age { set; get; }
}
创建一个处理数据的类:
public class Deal<T> where T : class
{
public T DealModel(T model)
{
var list=model.GetType().GetProperties();
foreach (var item in list)
{
if (typeof(int) == item.PropertyType) //判断是否为int类型
item.SetValue(model, (int)item.GetValue(model) + );
if (typeof(string) == item.PropertyType) //判断是否为string
item.SetValue(model, (string)item.GetValue(model) + "");
}
return model;
}
运行:
class Program
{
static void Main(string[] args)
{
//创建一个学生
var stu = new Student
{
Age = ,
Id = ,
Name = "张三",
Sex = "男"
}; //处理前的stu
Console.WriteLine("\t{0}\t{1}\t{2}\t{3}",stu.Id,stu.Name,stu.Sex,stu.Age);
//处理学生对象
var deal=new Deal<Student>();
stu =deal.DealModel(stu);
//处理后的stu
Console.WriteLine("\t{0}\t{1}\t{2}\t{3}",stu.Id,stu.Name,stu.Sex,stu.Age); Console.ReadKey();
} }
结果stu中的int类型数据增加1,string类型数据追加字符"123";

利用反射(Reflection)处理对象的更多相关文章
- java利用反射机制判断对象的属性是否为空以及获取和设置该属性的值
1.java利用反射机制判断对象的属性是否为空: Map<String,String> validateMap = new LinkedHashMap<String, String& ...
- JAVA中利用反射机制进行对象和Map相互转换的方法
JAVA的反射机制主要作用是用来访问对象的属性.方法等等.所以,JAVA中对象和Map相互转换可以利用JAVA的反射机制来实现.例子如下: 一.对象转Map的方法 public static Map& ...
- 使用PHP的反射Reflection获取对象信息
PHP5添加了一项新的功能:Reflection.这个功能使得程序员可以reverse-engineer class, interface,function,method and extension. ...
- JAVA利用反射映射JSON对象为JavaBean
关于将JSONObject转换为JavaBean,其实在JSONObject中有对于的toBean()方法来处理,还可以根据给定的JsonConfig来处理一些相应的要求,比如过滤指定的属性 //返回 ...
- Java JDBC利用反射技术将查询结果封装为对象
1.JDBC将返回结果集封装成对象demo class JdbcDemo { /** * 获取数据库列名 * @param rs * @return */ private static String[ ...
- <五>JDBC_利用反射及JDBC元数据编写通用的查询方法
此类针对javaBean类写了一个通用的查询方法,List<javaBean> 通用查询更新中...:通过学习,深刻体会到学会反射就等于掌握了java基础的半壁江山! 一.使用JDBC驱动 ...
- 利用反射及JDBC元数据编写通用查询方法
元数据:描述数据的数据,ResultSetMetaData是描述ResultSet的元数据对象,从它可以得到数据集有多少了,每一列的列名... ResultSetMetaData可以通过ResultS ...
- Java -- JDBC_利用反射及 JDBC 元数据编写通用的查询方法
先利用 SQL 进行查询,得到结果集: 利用反射创建实体类的对象:创建对象: 获取结果集的列的别名: 再获取结果集的每一列的值, 结合 3 得到一个 Map,键:列的别名,值:列的值: 再利用反射为 ...
- [.net 面向对象程序设计进阶] (20) 反射(Reflection)(上)利用反射技术实现动态编程
[.net 面向对象程序设计进阶] (20) 反射(Reflection)(上)利用反射技术实现动态编程 本节导读:本节主要介绍什么是.NET反射特性,.NET反射能为我们做些什么,最后介绍几种常用的 ...
随机推荐
- [nginx]lua操作redis
local redis = require "resty.redis" local red = redis:new() red:set_timeout() -- sec -- or ...
- Telnet命令相关+DMZ主机+花生壳
Win7如何解决telnet不是内部或外部命令的方案! telnet用法 测试端口号
- pdf转换成可在线浏览的电子杂志zmaker_pdf
zmaker是曾经国内最流行的电子杂志制作软件,可惜可惜,不过幸好有人给发布了 最新版的 其实主要是2个流程 一个是软件的安装 软件的下载和安装请参考 官方教材 http://bbs.emaghome ...
- [代码]set容器查找操作使用
对于set容器来说,查找功能是该容器的主要优势,故针对该容器查找功能作一测试. 主要有如下API接口: 测试源码如下: #include<set> void test(){ set< ...
- Windows和Linux双系统下完美卸载linux
装了Windows和linux双系统的朋友,在后期要删除linux是个比较头痛的问题,因为MBR已经被linux接管,本文的目的是如何在windows 和linux双系统下,简单,完美地卸载linux ...
- netbeans php环境搭建
jdk必须: sudo apt-get install openjdk-7-jdk
- epoll用法【整理】
l epoll是什么? epoll是当前在Linux下开发大规模并发网络程序的热门人选,epoll 在Linux2.6内核中正式引入,和select相似,都是I/O多路复用(IO multiplex ...
- eclipse怎么自定义工具栏
1.点击透视图按钮---->右键---->Customize: 2.勾选或者去掉相关项目:
- SpringBoot中使用LoadTimeWeaving技术实现AOP功能
目录 1. 关于LoadTimeWeaving 1.1 LTW与不同的切面织入时机 1.2 JDK实现LTW的原理 1.3 如何在Spring中实现LTW 2. Springboot中使用LTW实现A ...
- react-native 打包 出apk
先上步骤: 一. 生成签名文件(my-release-key.keystore文件) Android要求所有应用都有一个数字签名才会被允许安装在用户手机上 1. 在项目目录下运行如下命令: keyt ...