КОНЦЕПЦИИ C #
Введение в шаблон свойств - C # 8.0
Microsoft запустила шаблон свойств в версии C # 8.0, который является отличным способом сравнения свойств объектов.
Предпосылки
Пожалуйста, поймите новый синтаксис переключателя, представленный в C # 8.0, который помогает лучше понять текущий пример статьи.
Начиная
Шаблон свойств позволяет вам сопоставлять свойства измеряемого объекта.
Единый класс недвижимости
public class Calculate { public string multiplyBy { get; set; } }
Базовый синтаксис шаблона свойств
В следующем примере рассматривается новый случай переключения с классом свойств, где доступ к переменной свойства осуществляется внутри фигурных скобок {}. Поэтому, если значение свойства строки равно десяти, умножьте цену на десять и верните цену с помощью лямбда-выражений.
Символ _ обозначает регистр по умолчанию. Обратитесь к новому синтаксису переключателя
private static decimal ComputeOverallPrice(Calculate calculate, decimal price) => calculate switch { { multiplyBy: "10 times" } => 10 * price, { multiplyBy: "5 times" } => 5 * price, { multiplyBy: "20 times" } => 20 * price, _ => 0M };
Множественный класс собственности
Давайте рассмотрим класс с несколькими свойствами и воспользуемся ими при сопоставлении с образцом.
public class CalculateMultipleProperty { public string multiplyBy { get; set; } public bool isAdditionApplicable { get; set; } }
Синтаксис сопоставления шаблонов нескольких свойств
Таким образом, если второе свойство, то есть «isAdditionApplicable», истинно, мы добавляем еще 100, чтобы получить цену. В следующем примере рассматривается новый случай переключения с классом свойств, где доступ к переменной свойства осуществляется внутри фигурных скобок {}.
Доступ к нескольким свойствам осуществляется через запятую внутри фигурных скобок {}.
Символ _ обозначает регистр по умолчанию. Обратитесь к новому синтаксису переключателя
private static decimal ComputeOverallPriceMultiple(CalculateMultipleProperty calculate, decimal price) => calculate switch { {multiplyBy:"10 times",isAdditionApplicable:true}=>10*price + 100, {multiplyBy:"5 times",isAdditionApplicable:true}=>5*price + 50, {multiplyBy:"20 times",isAdditionApplicable:true}=>20*price + 70, _ => 0M };
Образец Github
В приведенном ниже примере содержится пример сопоставления как одного, так и нескольких свойств.
Предварительный образец собственности
Спасибо за чтение. Продолжайте посещать и поделитесь этим в своей сети. Пожалуйста, оставьте свои мысли и отзывы в разделе комментариев.