c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法
问题:
c#的wcf服务接口在后台通过自定义对象接收前台参数的时候,前台参数即使不传int类型的字段值,后台也会默认初始化为0,由于很多表示状态的int字段都是从0开始的,导致查询的时候有些不想参与查询的字段,如果不传值就会默认只查询状态为0的记录,这是不对的!!!,即便是在构造函数中赋值为-1也没有用,应该是在接收值的时候被覆盖掉了,如下图,困扰了好久!!
解决方法:
网上百度,本来想怎么给未传值的字段赋一个值,没做到!后来换了一种思路,如果int字段不默认初始化为0就可以判断是否传值了,ok了!如下图,int类型后面加个“?”表示该字段可为null,在没有构造函数或者构造函数不作为的情况下int就不会默认为0了!