c# the power of pattern matching and code simplication


Consider the following code :-

var assignmentNode = equalValueClause?.EqualsToken.Value as MemberAccessExpressionSyntax;
if (assignmentNode != null && assignmentNode is MemberAccessExpressionSyntax)
{
if (assignmentNode.Expression is IdentifierNameSyntax memberAccessClause)
{
return memberAccessClause.Identifier.ValueText;
}
}



And then with the power of pattern matching, it gets simplified into :-


private static string TryGetEqualsValueClause(EqualsValueClauseSyntax equalValueClause)
{
if (equalValueClause != null)
return null;
if (equalValueClause?.EqualsToken.Value is MemberAccessExpressionSyntax assignmentNode && assignmentNode is MemberAccessExpressionSyntax)
{
if (assignmentNode.Expression is IdentifierNameSyntax memberAccessClause)
{
return memberAccessClause.Identifier.ValueText;
}
}
return null;
}



Walla!!

Comments

Popular posts from this blog

The specified initialization vector (IV) does not match the block size for this algorithm

NodeJS: Error: spawn EINVAL in window for node version 20.20 and 18.20