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

.NET-MVC中的自定义getter/setter,.net,asp.net-mvc-2,getter-setter,.net,Asp.net Mvc 2,Getter Setter,所以我有这两个属性。基本上,我希望PotentialFutureExposureOverride属性返回它自己的值(如果有),否则我希望它返回PotentialFutureExposure的值。现在PotentialFutureExposure在设置覆盖时设置覆盖,但由于某些原因,当前,PotentialFutureExposureOverride仍返回空白,即使PotentialFutureExposure有一个值 谢谢。您确定不希望您的getter成为 [DisplayFormat(Data

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


谢谢。

您确定不希望您的getter成为

[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; }
这行吗

get { return PotentialFutureExposureOverride ?? STPData.MaximumCreditExposure; }

潜在的未来曝光率并没有真正的价值。在代码中,STPData.MaximumCreditExposure具有实际值。STPData.MaximumCreditExposure是否可能在您在PotentialFutureExposure设置器中设置之前具有一个值?如果是这种情况,那么PotentialFutureExposure总是看起来好像它有一个值。

为了澄清,
PotentialFutureExposureOverride
即使在
PotentialFutureExposure
为非空时也是空的。另外,
PotentialFutureExposure
的getter是否应该返回覆盖值(如果有)?这样,您就不必总是在代码的其他地方检查覆盖值。我意识到这有点离题,但有时整理一些不相关的东西有助于我解决手头的实际问题。这难道不是多余的吗?在这种情况下,您能否同时提供
STPData
类的代码?
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;
    }
}