最近工作的时候遇到一个问题,根据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#中实现对象间的更新操作
关键词:C#