.NET中的自定义getter / setter - MVC

时间:2011-06-07 20:38:11

标签: .net asp.net-mvc-2 getter-setter

[DisplayFormat(DataFormatString = "{0:c}")]
[DataType(DataType.Currency)]
public decimal? PotentialFutureExposure
{
    get { return STPData.MaximumCreditExposure; }
    set 
    { 
        STPData.MaximumCreditExposure = value;
        this.PotentialFutureExposureOverride = value;
    }
}

public decimal? PotentialFutureExposureOverride { get; set; }

所以我有这两个属性。基本上,我希望PotentialFutureExposureOverride属性返回它自己的值,如果它有一个,否则我希望它返回PotentialFutureExposure的值。现在PotentialFutureExposure会在设置时设置覆盖,但由于某些原因,即使PotentialFutureExposureOverride有值,PotentialFutureExposure仍然会返回空白。

感谢。

3 个答案:

答案 0 :(得分:0)

你确定你不想要你的吸气剂

get { return PotentialFutureExposureOverride ?? STPData.MaximumCreditExposure; }

答案 1 :(得分:0)

这有用吗?

private decimal? _override = null;

public decimal? PotentialFutureExposure
{
    get { return PotentialFutureExposureOverride ?? STPData.MaximumCreditExposure; }
    set
    {
        STPData.MaximumCreditExposure = value;
        this.PotentialFutureExposureOverride = value;
    }
}

public decimal? PotentialFutureExposureOverride 
{ 
    get 
    {
        if (_override.HasValue)
            return _override;
        return PotentialFutureExposure;
    }
    set
    {
        _override = value;
    }
}

答案 2 :(得分:0)

PotentialFutureExposure实际上没有值。在您的代码中,STPData.MaximumCreditExposure具有实际值。在PotentialFutureExposure设置器中设置STPData.MaximumCreditExposure之前是否有值?如果是这种情况,那么PotentialFutureExposure将始终看起来好像它有一个值。