c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法

问题:

c#的wcf服务接口在后台通过自定义对象接收前台参数的时候,前台参数即使不传int类型的字段值,后台也会默认初始化为0,由于很多表示状态的int字段都是从0开始的,导致查询的时候有些不想参与查询的字段,如果不传值就会默认只查询状态为0的记录,这是不对的!!!,即便是在构造函数中赋值为-1也没有用,应该是在接收值的时候被覆盖掉了,如下图,困扰了好久!!

c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法_第1张图片c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法_第2张图片

 

解决方法:

网上百度,本来想怎么给未传值的字段赋一个值,没做到!后来换了一种思路,如果int字段不默认初始化为0就可以判断是否传值了,ok了!如下图,int类型后面加个“?”表示该字段可为null,在没有构造函数或者构造函数不作为的情况下int就不会默认为0了!

c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法_第3张图片

c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法_第4张图片

 

转载于:https://www.cnblogs.com/lyd2016/p/6053265.html

你可能感兴趣的:(c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法)