What does it mean?
Basically, in C# 8.0 Microsoft has introduced the new pattern: Property pattern.
A property pattern matches an expression when an expression result is not null and every nested pattern matches the corresponding property or field of the expression result.
In C# 10, you can reference nested properties or fields within a property pattern.
Example
The following code sample shows a C# Customer class , which contains some properties and a nested property named Address which is in itself an object.
public class Customer
{
public string Name { get; set; }
public string LastName { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string City { get; set; }
public string ZipCode { get; set; }
}
public class DiscountCalculator
{
public double GetDiscount(Customer customer)
{
if (customer is { Address : { City: "NYC" } })
{
return 0.8;
}
else
{
return 0.9;
}
}
}
As you can see in our GetDiscount method, the syntax for accessing the address nested property is verbose
if (customer is { FullAddress : { City: "NYC" } })
In C# 10, it’s much more practical, you can reference nested properties or fields within a property pattern.
if (customer is { FullAddress.City: "NYC" })
That's it, for more details about the Extended property patterns
you can refer to the link below:
Extended property patterns
Top comments (0)