0 Tage Serie
csharp / intermediate
Snippet

Komplexe Zustandsauswertung durch verschachtelte Property-Patterns

Property-Patterns ermöglichen es Ihnen, die Eigenschaften eines Objekts mit spezifischen Werten oder Bereichen abzugleichen. Durch Verschachtelung können Sie tiefe Objekthierarchien sauber innerhalb eines Switch-Ausdrucks prüfen, wodurch umständliche verschachtelte If-Anweisungen vermieden werden.

snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
public record User(string Name, int Age, bool IsActive);
public record Session(User User, bool IsExpired);
string GetAccessStatus(Session session) => session switch
{
{ IsExpired: true } => "Session Expired",
{ User: { IsActive: false } } => "User Inactive",
{ User: { Age: < 18 } } => "Restricted Content",
{ User: { Name: "Admin" } } => "Full Access",
_ => "Standard Access"
};
Erklärung
1
{ User: { IsActive: false } } => "User Inactive",
Trifft zu, wenn die 'User'-Eigenschaft der Session eine 'IsActive'-Eigenschaft hat, die false ist.
2
{ User: { Age: < 18 } } => "Restricted Content",
Verwendet ein relationales Pattern (<) innerhalb eines Property-Patterns, um einen numerischen Bereich zu prüfen.