КОНЦЕПЦИИ 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

В приведенном ниже примере содержится пример сопоставления как одного, так и нескольких свойств.



Предварительный образец собственности



Спасибо за чтение. Продолжайте посещать и поделитесь этим в своей сети. Пожалуйста, оставьте свои мысли и отзывы в разделе комментариев.

Следуйте за мной в LinkedIn Instagram Facebook Twitter