• 把新建的对象所有属性变成默认值


    日常编码的过程中,我们经常能碰到一些小操作,有时候就是想节(tōu)约(gè)时(lǎn)间(er),所以写好工具方法方便直接调用

     1     public static class WipeNullHelper
     2     {
     3         /// <summary>
     4         /// 把对象里的null变成相应类型的默认值
     5         /// </summary>
     6         /// <param name="entity">对象实体</param>
     7         /// <returns></returns>
     8         public static T WipeNull<T>(T entity)
     9         {
    10             System.Reflection.PropertyInfo[] ps = entity.GetType().GetProperties();
    11             Type type = entity.GetType();
    12             foreach (PropertyInfo propertie in ps)
    13             {
    14                 if (propertie.PropertyType == typeof(string))
    15                 {
    16                     PropertyInfo propertyInfo = type.GetProperty(propertie.Name);
    17                     if (propertyInfo.GetValue(entity, null) == null)
    18                     {
    19                         propertyInfo.SetValue(entity, "", null);
    20                     }
    21                 }
    22                 else if (propertie.PropertyType == typeof(Int32))
    23                 {
    24                     PropertyInfo propertyInfo = type.GetProperty(propertie.Name);
    25                     if (propertyInfo.GetValue(entity, null) == null)
    26                     {
    27                         propertyInfo.SetValue(entity, 0, null);
    28                     }
    29                 }
    30                 else if (propertie.PropertyType == typeof(Nullable<int>))
    31                 {
    32                     PropertyInfo propertyInfo = type.GetProperty(propertie.Name);
    33                     if (propertyInfo.GetValue(entity, null) == null)
    34                     {
    35                         propertyInfo.SetValue(entity, 0, null);
    36                     }
    37                 }
    38                 else if (propertie.PropertyType == typeof(decimal))
    39                 {
    40                     PropertyInfo propertyInfo = type.GetProperty(propertie.Name);
    41                     if (propertyInfo.GetValue(entity, null) == null)
    42                     {
    43                         propertyInfo.SetValue(entity, Convert.ToDecimal(0.0), null);
    44                     }
    45                 }
    46                 else if (propertie.PropertyType == typeof(Nullable<decimal>))
    47                 {
    48                     PropertyInfo propertyInfo = type.GetProperty(propertie.Name);
    49                     if (propertyInfo.GetValue(entity, null) == null)
    50                     {
    51                         propertyInfo.SetValue(entity, Convert.ToDecimal(0.0), null);
    52                     }
    53                 }
    54             }
    55             return entity;
    56         }
    57 
    58     }
  • 相关阅读:
    Gogh-位图编纂次序
    Skype 1.4 for Linux 掉掉更新
    Jokosher 0.9
    [推荐]实用网址大全
    创建异形窗口[2]
    创建异形窗口[3]
    动态列表
    给系统菜单添加菜单项
    演示控件的 Anchors 属性
    使用 WM_NCHITTEST 消息判断鼠标所在窗口的部位
  • 原文地址:https://www.cnblogs.com/JessieR/p/8953888.html
Copyright © 2020-2023  润新知