最近工作的時候遇到一個問題,根據Web端接收到的對象obj1,更新對應的對象值ogj2。先判斷obj1中屬性值是否為null, 若不等於null,則更新obj2中對應屬性值;若等於null,則保持obj2中對應屬性值不變。 先創建Student Class: 1 using System; 2 us ...
最近工作的時候遇到一個問題,根據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