C# 数字类型属性的值=0,设置为null值
作者:C/S框架网|www.csframewo  发布日期:2023/10/18 19:38:25
  C# 数字类型属性的值=0,设置为null值

C# 数字类型属性的值=0,设置为null值,该方法仅支持泛型的属性。

C# Code:


/// <summary>
/// 若数字类型的属性=0,设置为null值
/// </summary>
/// <param name="obj"></param>
public static void SetNumericNull(object obj)
{
  
//数字类型
  
var types = new List<Type>()
  {
    
typeof(Int16),
    
typeof(Int32),
    
typeof(Int64),
    
typeof(Int128),
    
typeof(Double),
    
typeof(Decimal),
    
typeof(float),
    };
    
    Type tmp;
    Object value;
    
    
var ps = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);
    
foreach (PropertyInfo p in ps)
    {
      
//泛型属性:判断泛型参数>0
      
if (p.PropertyType.GenericTypeArguments.Length > 0)
      {
        tmp
= p.PropertyType.GenericTypeArguments[0];
        value
= p.GetValue(obj);
        
if (tmp.IsValueType && types.Contains(tmp) && value != null && value.ToString() == "0")
        {
          p.SetValue(obj,
null);
        }
      }
    }
  }
  
  
//来源:C/S框架网 | www.csframework.com | QQ:23404761



测试






C# Code:

public class TTestModel
{
  
public int Qty { get; set; }
  
  
public decimal Price { get; set; }
  
  
public int? Qty1 { get; set; }
  
  
public decimal? Price1 { get; set; }
  
  
public decimal Amount { get; set; }
  
public decimal? Amount1 { get; set; }
  
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761





C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇