#c# #class #dependency-properties
#c# #класс #зависимость-свойства
Вопрос:
Это вопрос производительности, я использую класс, подобный приведенному ниже примеру: у меня есть два свойства Status и Price.
public class Customers
{
public bool Status {get; set;}
public string Price {get; set;}
}
Итак, я в замешательстве, мне нужно проверить, является ли статус true или false, а затем вернуть формат строки в price. Мой вопрос в том, какой из двух методов имеет лучшую производительность. Или если производительность незначительна.
#Пример 1
public class Customers
{
public bool Status {get; set;}
public string Price
{
return status ?
string.Format("{0:0.00}", Price) "€" :
"Item Status is False";
}
}
#Пример 2
public class Customers
{
private string priceAsString;
public bool Status {get; set;}
public string Price
{
get
{
return priceAsString;
}
set
{
priceAsString= Status?
string.Format("{0:0.00}", Price) "€" :
"Item Status is False";
}
}
}
Комментарии:
1. ericlippert.com/2012/12/17/performance-rant
2. Второй вариант вообще не имеет смысла.
3. Первый способ выглядит как ожидающее возникновения исключения stackoverflow
4. В вашем втором примере, что вы ожидаете, произойдет, если статус изменится после
Price
установки? Однако ваш первый пример также не компилируется, так что ни один из них явно не лучше. Как и в связанном сообщении, предпочитайте простой , корректно работающий код, прежде чем беспокоиться о производительности.5. Комментарий ко второму решению: что такое, если
Status
изменения послеPrice
установки? Производительность в этих двух примерах действительно незначительна. Вы должны выбрать более читаемый и более удобный в обслуживании… итак, вам следует перейти на версию 1. В качестве дополнительного примечания: код первой версии не компилируется.