DEV Community

Discussion on: Optimization of .NET applications: a big result of small edits

Collapse
 
akashkava profile image
Akash Kava

One more small edit,

public static bool IsKindEqual(this SyntaxNode node, params SyntaxKind[] kinds);
Enter fullscreen mode Exit fullscreen mode

Add method overloads,

public static bool IsKindEqual(this SyntaxNode node, 
     SyntaxKind kind1);
public static bool IsKindEqual(this SyntaxNode node, 
     SyntaxKind kind1, 
     SyntaxKind kind2);
public static bool IsKindEqual(this SyntaxNode node, 
     SyntaxKind kind1, 
     SyntaxKind kind2,
     SyntaxKind kind3);
public static bool IsKindEqual(this SyntaxNode node, 
     SyntaxKind kind1, 
     SyntaxKind kind2,
     SyntaxKind kind3,
     SyntaxKind kind4);
public static bool IsKindEqual(this SyntaxNode node, params SyntaxKind[] kinds);
Enter fullscreen mode Exit fullscreen mode

This will avoid creating and accessing array for less than 5 elements... as compiler will choose method and probably inline it as well.

Collapse
 
_sergvasiliev_ profile image
Sergey Vasiliev

Yep, you're right. :)

Developers of .NET libraries use this approach for some types. I also mentioned this approach in the article. :)