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


          最近工作的时候遇到一个问题,根据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

  • 相关阅读:
    移动Web开发规范概述
    hibernate 多对多
    hibernate 1 对1
    hibernate 双向1对多
    Hibernate 单项多对1
    Hibernate Session 4种对象状态
    Hibernate Session缓存
    Hibernaate 详解
    Hibernate学习 (一)
    Struts拦截器Interceptor
  • 原文地址:https://www.cnblogs.com/Johar/p/5448561.html
Copyright © 2020-2023  润新知