Я хочу отформатировать значение в методе считывания и возвратить форматированное значение валюты.
Это возможное, или сделайте я должен объявить свойство как строку и затем использовать string.format.
Свойства могут возвращать все, что захотят, но для этого нужно будет вернуть правильный тип.
private decimal _amount;
public string FormattedAmount
{
get { return string.Format("{0:C}", _amount); }
}
Был задан вопрос ... что, если это десятичное число, допускающее значение NULL.
private decimal? _amount;
public string FormattedAmount
{
get
{
return _amount == null ? "null" : string.Format("{0:C}", _amount.Value);
}
}
Вы можете использовать String.Format, см. Код [через How-to Geek ]:
decimal moneyvalue = 1921.39m;
string html = String.Format("Order Total: {0:C}", moneyvalue);
Console.WriteLine(html);
// Output: $1,921.39
См. Также:
Нижеследующее также будет работать, но вы не можете вставить получатель свойства decimal. Получатель свойства decimal может возвращать только десятичное число, для которого форматирование не применяется.
decimal moneyvalue = 1921.39m;
string currencyValue = moneyvalue.ToString("C");
Возвращаемый формат будет ограничен объявленным вами типом возврата. Итак, да, вы можете объявить свойство как строку и вернуть отформатированное значение чего-либо. В "get" вы можете поместить любой код для извлечения данных, который вам нужен. Поэтому, если вам нужно получить доступ к некоторому числовому значению, просто поместите оператор возврата как:
private decimal _myDecimalValue = 15.78m;
public string MyFormattedValue
{
get { return _myDecimalValue.ToString("c"); }
private set; //makes this a 'read only' property.
}
Десятичный тип не может содержать информацию о форматировании. Вы можете создать другое свойство, например FormattedProperty
строкового типа, которое делает то, что вы хотите.