Пользовательские геттеры / сеттеры в .NET - MVC - PullRequest
0 голосов
/ 08 июня 2011
[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 голосов
/ 08 июня 2011

Это работает?

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;
    }
}
0 голосов
/ 08 июня 2011

PotentialFutureExposure на самом деле не имеет значения.В вашем коде STPData.MaximumCreditExposure имеет фактическое значение.Возможно ли, что STPData.MaximumCreditExposure имеет значение до того, как вы установите его в установщике PotentialFutureExposure?Если это так, то PotentialFutureExposure всегда будет выглядеть так, как будто оно имеет значение.

0 голосов
/ 08 июня 2011

Вы уверены, что не хотите, чтобы ваш получатель получил

get { return PotentialFutureExposureOverride ?? STPData.MaximumCreditExposure; }

...