码迷,mamicode.com
首页 > Windows程序 > 详细

C#中实现对象间的更新操作

时间:2016-04-30 12:53:34      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

      最近工作的时候遇到一个问题,根据Web端接收到的对象obj1,更新对应的对象值ogj2。先判断obj1中属性值是否为null,

若不等于null,则更新obj2中对应属性值;若等于null,则保持obj2中对应属性值不变。

      先创建Student Class:

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace Property
 7 {
 8     public class Student
 9     {
10         public string Name { get; set; }
11 
12         public string  number { get; set; }
13 
14         public string School {get;set;}
15 
16         public string  Score { get; set; }
17     }
18 }
View Code

      方法实现:

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace Property
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             Student std1 = new Student();
13             std1.Name = "Zhang San";
14             std1.number = "1001";
15             std1.School = "Jiangnan University";
16             std1.Score = "87.98";
17 
18             Student std2 = new Student();
19             std2.Name = "Li Si";
20             std2.Score = "98.98";
21 
22             Console.WriteLine("Before:");
23             foreach (System.Reflection.PropertyInfo p in std1.GetType().GetProperties())
24             {
25                 Console.WriteLine("{0}:   {1}", p.Name, p.GetValue(std1,null));
26  
27             }
28 
29             foreach (System.Reflection.PropertyInfo p in std2.GetType().GetProperties())
30             {
31                 //Console.WriteLine("{0}:   {1}", p.Name, p.GetValue(std2, null));
32                 if (p.GetValue(std2, null) != null)
33                     p.SetValue(std1, p.GetValue(std2, null), null);
34             }
35             Console.WriteLine("After:");
36             foreach (System.Reflection.PropertyInfo p in std1.GetType().GetProperties())
37             {
38                 Console.WriteLine("{0}:   {1}", p.Name, p.GetValue(std1, null));
39 
40             }
41             Console.ReadKey();
42 
43         }
44     }
45 }
View Code

        结果:

  技术分享

2016-04-30

C#中实现对象间的更新操作

标签:

原文地址:http://www.cnblogs.com/Johar/p/5448561.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!