C#中实现对象间的更新操作
最近工作的时候遇到一个问题,根据Web端接收到的对象obj1,更新对应的对象值ogj2。先判断obj1中属性值是否为null,
若不等于null,则更新obj2中对应属性值;若等于null,则保持obj2中对应属性值不变。
先创建Student Class:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
方法实现:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
结果:
2016-04-30
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步