Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 扩展获取集对象_C# - Fatal编程技术网

C# 扩展获取集对象

C# 扩展获取集对象,c#,C#,这是我的DTO对象,当我尝试设置属性PcPevna时,它不起作用。为什么?因为将PcPevna设置为一个值!=null将Sleva设置为0,其setter依次将PcPevna设置回null 将代码更改为 public class ZakazkandDTO { private decimal? _pcPevna; private decimal? _sleva; public decimal? PcPevna { get => _

这是我的DTO对象,当我尝试设置属性PcPevna时,它不起作用。为什么?

因为将
PcPevna
设置为一个值!=null将
Sleva
设置为0,其setter依次将
PcPevna
设置回
null

将代码更改为

public class ZakazkandDTO
{
    private decimal? _pcPevna;
    private decimal? _sleva;
    
    public decimal? PcPevna 
    { 
        get => _pcPevna;
        set 
        { 
            _pcPevna = value; 
            if (_pcPevna.HasValue) 
                Sleva = PcSpec = 0; 
        }
    }
    
    public decimal? Sleva 
    { 
        get => _sleva; 
        set 
        { 
            _sleva = value; 
            if (_sleva.HasValue) 
                PcPevna = null; 
        }
    }
    
    public decimal? PcSpec { get; set; }
}
即,直接设置支持字段以避免再次触发其他属性的设置程序

public decimal? PcPevna {
    get => _pcPevna;
    set {
        _pcPevna = value;
        if (_pcPevna.HasValue)
            _sleva = PcSpec = 0;
    }
}

public decimal? Sleva { 
    get => _sleva;
    set {
        _sleva = value;
        if (_sleva.HasValue)
            _pcPevna = null;
    }
}