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.