Microsoft .NET Code Analysis: Avoid Using Constant Arrays as Arguments

While analyzing the Entity Framework source code, I pinpointed a performance issue associated with the utilization of constant arrays as arguments. This problem was identified in the following code snippet:

foreach (var part in Template.Split(new[] { ' ', '|' }, 
         StringSplitOptions.RemoveEmptyEntries))

The problem arises from the creation of a new array each time this line is called. To address this, you can relocate the array to a static read-only field, as illustrated below:

private static readonly char[] _separator = new[] { ' ', '|' };

foreach (var part in Template.Split(_separator, 
         StringSplitOptions.RemoveEmptyEntries))

When I setup the CA1861 code analysis in my .editorConfig it looks like this: dotnet_diagnostic.CA1861.severity = warning

Summary

While reviewing the Entity Framework codebase I utilized for this article, I discovered 168 occurrences where the code needs to be fixed so performance can be increased.

For further guidance and insights, I highly recommend obtaining a copy of my book, “Rock Your Code: Coding Standards for Microsoft .NET” available on Amazon.com. Additionally, to explore more performance tips for .NET, I encourage you to acquire the 3rd edition of “Rock Your Code: Code & App Performance for Microsoft .NET” also available on Amazon.com.

To analyze your code using the same settings I used in these articles, I encourage you to incorporate my EditorConfig file. It can be found at the following link: https://bit.ly/dotNetDaveEditorConfig. I update this file quarterly, so remember to keep yours up to date as well. I hope you will check out my OSS project Spargine by using this link: https://bit.ly/Spargine.

Please feel free to leave a comment below. I would appreciate hearing your thoughts and feedback.

Pick up any books by David McCarter by going to Amazon.com: http://bit.ly/RockYourCodeBooks

One-Time
Monthly
Yearly

Make a one-time donation

Make a monthly donation

Make a yearly donation

Choose an amount

$5.00
$15.00
$100.00
$5.00
$15.00
$100.00
$5.00
$15.00
$100.00

Or enter a custom amount

$

Your contribution is appreciated.

Your contribution is appreciated.

Your contribution is appreciated.

DonateDonate monthlyDonate yearly

If you liked this article, please buy David a cup of Coffee by going here: https://www.buymeacoffee.com/dotnetdave

© The information in this article is copywritten and cannot be preproduced in any way without express permission from David McCarter.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.