{"id":18982390,"url":"https://github.com/dimitrietataru/csharp-coding-standards","last_synced_at":"2025-08-07T15:19:26.796Z","repository":{"id":158507644,"uuid":"479450753","full_name":"dimitrietataru/csharp-coding-standards","owner":"dimitrietataru","description":"An opinionated C# .editorconfig","archived":false,"fork":false,"pushed_at":"2024-08-26T14:38:56.000Z","size":209,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"ace","last_synced_at":"2024-08-26T17:12:09.514Z","etag":null,"topics":["coding-guidelines","coding-standards","coding-style","csharp"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dimitrietataru.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-08T15:49:21.000Z","updated_at":"2024-08-26T14:38:59.000Z","dependencies_parsed_at":"2023-05-22T09:30:40.591Z","dependency_job_id":"3d22934c-9f5c-4081-b458-bad298f12de2","html_url":"https://github.com/dimitrietataru/csharp-coding-standards","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitrietataru%2Fcsharp-coding-standards","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitrietataru%2Fcsharp-coding-standards/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitrietataru%2Fcsharp-coding-standards/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitrietataru%2Fcsharp-coding-standards/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimitrietataru","download_url":"https://codeload.github.com/dimitrietataru/csharp-coding-standards/tar.gz/refs/heads/ace","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223713507,"owners_count":17190498,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coding-guidelines","coding-standards","coding-style","csharp"],"created_at":"2024-11-08T16:13:20.588Z","updated_at":"2025-04-16T13:32:50.969Z","avatar_url":"https://github.com/dimitrietataru.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C# Coding Standards\n\nAn opinionated C# .editorconfig  \nCompatible with Visual Studio 2022, and 2019*.\n\n\n## Table of contents\n* [Visual Studio options](#visual-studio-options)\n  * Advanced\n    * [Using directives](#advanced--using-directives)\n  * Code style\n    * General\n      * [this. preferences](#code-style--general--this-preferences)\n      * [Predefined type preferences](#code-style--general--predefined-type-preferences)\n      * [var preferences](#code-style--general--var-preferences)\n      * [Code block preferences](#code-style--general--code-block-preferences)\n      * [Parentheses preferences](#code-style--general--parentheses-preferences)\n      * [Expression preferences](#code-style--general--expression-preferences)\n      * [Expression-bodied members](#code-style--general--expression-bodied-members)\n      * [Pattern matching preferences](#code-style--general--pattern-matching-preferences)\n      * [Variable preferences](#code-style--general--variable-preferences)\n      * [null checking](#code-style--general--null-checking)\n      * [using preferences](#code-style--general--using-preferences)\n      * [Modifier preferences](#code-style--general--modifier-preferences)\n      * [Parameter preferences](#code-style--general--parameter-preferences)\n      * [Style](#code-style--general--style)\n      * [New line preferences](#code-style--general--new-line-preferences)\n    * Formatting\n      * [General](#code-style--formatting--general)\n      * Indentation\n        * [General](code-style--formatting--indentation--general)\n        * [Label indentation](#code-style--formatting--indentation--label-indentation)\n      * New lines\n        * [New line options for braces](#code-style--formatting--new-lines--new-line-options-for-braces)\n        * [New line options for keywords](#code-style--formatting--new-lines--new-line-options-for-keywords)\n        * [New line options for expressions](#code-style--formatting--new-lines--new-line-options-for-expressions)\n      * Spacing\n        * [Set spacing for method declarations](#code-style--formatting--spacing--set-spacing-for-method-declarations)\n        * [Set spacing for method calls](#code-style--formatting--spacing--set-spacing-for-method-calls)\n        * [Set other spacing options](#code-style--formatting--spacing--set-other-spacing-options)\n        * [Set spacing for brackets](#code-style--formatting--spacing--set-spacing-for-brackets)\n        * [Set spacing for delimiters](#code-style--formatting--spacing--set-spacing-for-delimiters)\n        * [Set spacing for operators](#code-style--formatting--spacing--set-spacing-for-operators)\n      * [Wrapping](#code-style--formatting--wrapping)\n* [Microsoft.CodeAnalysis.NetAnalyzers](#microsoftcodeanalysisnetanalyzers)\n  * [Design](#microsoftcodeanalysisnetanalyzers--design)\n  * [Documentation](#microsoftcodeanalysisnetanalyzers--documentation)\n  * [Globalization](#microsoftcodeanalysisnetanalyzers--globalization)\n  * [Interoperability](#microsoftcodeanalysisnetanalyzers--interoperability)\n  * [Maintainability](#microsoftcodeanalysisnetanalyzers--maintainability)\n  * [Naming](#microsoftcodeanalysisnetanalyzers--naming)\n  * [Performance](#microsoftcodeanalysisnetanalyzers--performance)\n  * [Reliability](#microsoftcodeanalysisnetanalyzers--reliability)\n  * [Security](#microsoftcodeanalysisnetanalyzers--security)\n  * [Usage](#microsoftcodeanalysisnetanalyzers--usage)\n\n\n## Visual Studio options\n\n### Advanced | Using directives\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Place _System_ directives first when sorting usings                                   |   ☐   |\n| Separate using directive groups                                                       |   ☐   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_sort_system_directives_first = false\ndotnet_separate_import_directive_groups = false\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | _this._ preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Qualify field access with _this._                           | IDE0003 | Do not prefer _this_    | ⚠ Warning    |\n| Qualify property access with _this._                        | IDE0003 | Do not prefer _this_    | ⚠ Warning    |\n| Qualify method access with _this._                          | IDE0003 | Do not prefer _this_    | ⚠ Warning    |\n| Qualify event access with _this._                           | IDE0003 | Do not prefer _this_    | ⚠ Warning    |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_style_qualification_for_event = false:warning\ndotnet_style_qualification_for_field = false:warning\ndotnet_style_qualification_for_method = false:warning\ndotnet_style_qualification_for_property = false:warning\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | Predefined type preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| For locals, parameters, and members                         | IDE0049 | Prefer predefined type  | ⚠ Warning    |\n| For member access expressions                               | IDE0049 | Prefer predefined type  | ⚠ Warning    |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_style_predefined_type_for_locals_parameters_members = true:warning\ndotnet_style_predefined_type_for_member_access = true:warning\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | _var_ preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| For built-in types                                          | IDE0008 | Prefer explicit type    | 🛈 Suggestion  |\n| When variable type is apparent                              | IDE0007 | Prefer _var_            | ⚠ Warning    |\n| Elsewhere                                                   | IDE0007 | Prefer _var_            | 🛈 Suggestion  |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_style_var_for_built_in_types = false:suggestion\ncsharp_style_var_when_type_is_apparent = true:warning\ncsharp_style_var_elsewhere = true:suggestion\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | Code block preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Prefer braces                                               | IDE0011 | Yes                     | ⚠ Warning    |\n| Prefer auto properties                                      | IDE0032 | Yes                     | 🞅 Refactoring |\n| Prefer simple _using_ statement                             | IDE0063 | Yes                     | 🛈 Suggestion  |\n| Prefer _System.HashCode_ in 'GetHashCode'                   | IDE0070 | Yes                     | 🛈 Suggestion  |\n| Namespace declarations                                      | IDE0161 | File scoped             | 🛈 Suggestion  |\n| Prefer method group conversion                              | IDE0200 | Yes                     | 🛈 Suggestion  |\n| Prefer top-level statements                                 | IDE0210 | Yes                     | 🛈 Suggestion  |\n| Prefer primary constructors                                 | IDE0290 | No                      | ⚠ Warning    |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_prefer_braces = true:warning\ndotnet_style_prefer_auto_properties = true:silent\ncsharp_prefer_simple_using_statement = true:suggestion\n# Missing: Prefer _System.HashCode_ in 'GetHashCode'\ncsharp_style_namespace_declarations = file_scoped:suggestion\ncsharp_style_prefer_method_group_conversion = true:suggestion\ncsharp_style_prefer_top_level_statements = true:suggestion\ncsharp_style_prefer_primary_constructors = false:warning\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | Parentheses preferences\n| Description _______________________________________________    | Code    | Preference ____________ | !! Severity !! |\n| :----------------------------------------------------------    | :-----: | :---------------------- | :-----------: |\n| In arithmetic operators: _*_ _/_ _%_ _+_ _-_ _\u003c\u003c_ _\u003e\u003e_ _\u0026_ _^_ | IDE0048 | Always for clarity      | 🛈 Suggestion  |\n| In other binary operators: _\u0026\u0026_ _??_ _and_ _or_                | IDE0048 | Always for clarity      | 🛈 Suggestion  |\n| In relational operators: _\u003c_ _\u003e_ _\u003c=_ _\u003e=_ _is_ _as_ _==_ _!=_ | IDE0048 | Always for clarity      | 🛈 Suggestion  |\n| In other operators                                             | IDE0047 | Never if unnecessary    | ⚠ Warning    |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:suggestion\ndotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion\ndotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggestion\ndotnet_style_parentheses_in_other_operators = never_if_unnecessary:warning\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | Expression preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Prefer object initializer                                   | IDE0017 | Yes                     | 🛈 Suggestion  |\n| Prefer collection initializer                               | IDE0028 | Yes                     | 🛈 Suggestion  |\n| Prefer explicit tuple name                                  | IDE0033 | Yes                     | 🛈 Suggestion  |\n| Prefer simple _default_ expression                          | IDE0034 | Yes                     | ⚠ Warning    |\n| Prefer inferred tuple element names                         | IDE0037 | No                      | 🛈 Suggestion  |\n| Prefer inferred anonymous type member names                 | IDE0037 | Yes                     | 🞅 Refactoring |\n| Prefer local function over anonymous function               | IDE0039 | Yes                     | ⚠ Warning    |\n| Prefer conditional expression over _if_ with assignments    | IDE0045 | Yes                     | 🞅 Refactoring |\n| Prefer conditional expression over _if_ with returns        | IDE0046 | No                      | 🞅 Refactoring |\n| Prefer compound assignments                                 | IDE0054 | Yes                     | ⚠ Warning    |\n| Prefer index operator                                       | IDE0056 | Yes                     | 🛈 Suggestion  |\n| Prefer range operator                                       | IDE0057 | Yes                     | 🛈 Suggestion  |\n| Avoid expression statements that implicitly ignore value    | IDE0058 | Discard                 | 🞅 Refactoring |\n| Avoid unused value assignments                              | IDE0059 | Discard                 | 🞅 Refactoring |\n| Prefer switch expression                                    | IDE0066 | Yes                     | 🛈 Suggestion  |\n| Prefer simplified interpolation                             | IDE0071 | Yes                     | ⚠ Warning    |\n| Prefer simplified boolean expressions                       | IDE0075 | Yes                     | ⚠ Warning    |\n| Prefer implicit object creation when type is aparent        | IDE0090 | Yes                     | 🛈 Suggestion  |\n| Prefer namespace and folder match structure                 | IDE0130 | Yes                     | 🛈 Suggestion  |\n| Prefer tuple swap                                           | IDE0180 | Yes                     | 🛈 Suggestion  |\n| Prefer UTF-8 string literals                                | IDE0230 | Yes                     | 🛈 Suggestion  |\n| Prefer collection expression                                | IDE0300 | Yes                     | 🛈 Suggestion  |\n| Operator placement when wrapping                            |         | Beginning of line       | |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_style_object_initializer = true:suggestion\ndotnet_style_collection_initializer = true:suggestion\ndotnet_style_explicit_tuple_names = true:suggestion\ncsharp_prefer_simple_default_expression = true:warning\ndotnet_style_prefer_inferred_tuple_names = false:suggestion\ndotnet_style_prefer_inferred_anonymous_type_member_names = false:suggestion\ncsharp_style_prefer_local_over_anonymous_function = true:warning\ndotnet_style_prefer_conditional_expression_over_assignment = true:silent\ndotnet_style_prefer_conditional_expression_over_return = false:silent\ndotnet_style_prefer_compound_assignment = true:warning\ncsharp_style_prefer_index_operator = true:suggestion\ncsharp_style_prefer_range_operator = true:suggestion\ncsharp_style_unused_value_expression_statement_preference = discard_variable:silent\ncsharp_style_unused_value_assignment_preference = discard_variable:silent\ncsharp_style_prefer_switch_expression = true:suggestion\ndotnet_style_prefer_simplified_interpolation = true:warning\ndotnet_style_prefer_simplified_boolean_expressions = true:warning\ncsharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion\ndotnet_style_namespace_match_folder = true:suggestion\ncsharp_style_prefer_tuple_swap = true:suggestion\ncsharp_style_prefer_utf8_string_literals = true:suggestion\ndotnet_style_prefer_collection_expression = true:suggestion\ndotnet_style_operator_placement_when_wrapping = beginning_of_line\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | Expression-bodied members\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Use expression body for constructors                        | IDE0021 | Never                   | 🞅 Refactoring |\n| Use expression body for methods                             | IDE0022 | Never                   | 🞅 Refactoring |\n| Use expression body for operators                           | IDE0024 | Never                   | 🞅 Refactoring |\n| Use expression body for properties                          | IDE0025 | When possible           | 🛈 Suggestion  |\n| Use expression body for indexers                            | IDE0026 | When possible           | 🛈 Suggestion  |\n| Use expression body for accessors                           | IDE0027 | When possible           | 🛈 Suggestion  |\n| Use expression body for lambdas                             | IDE0053 | When possible           | 🞅 Refactoring |\n| Use expression body for local functions                     | IDE0061 | Never                   | 🛈 Suggestion  |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_style_expression_bodied_constructors = false:silent\ncsharp_style_expression_bodied_methods = false:silent\ncsharp_style_expression_bodied_operators = false:silent\ncsharp_style_expression_bodied_properties = true:suggestion\ncsharp_style_expression_bodied_indexers = true:suggestion\ncsharp_style_expression_bodied_accessors = true:suggestion\ncsharp_style_expression_bodied_lambdas = true:silent\ncsharp_style_expression_bodied_local_functions = false:suggestion\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | Pattern matching preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Prefer pattern matching                                     | IDE0078 | Yes                     | 🛈 Suggestion  |\n| Prefer pattern matching over _as_ with _null_ check         | IDE0019 | Yes                     | ⚠ Warning    |\n| Prefer pattern matching over _is_ with _cast_ check         | IDE0020 | Yes                     | ⚠ Warning    |\n| Prefer pattern matching over mixed type check               | IDE0083 | Yes                     | ⚠ Warning    |\n| Prefer extended property pattern                            | IDE0170 | Yes                     | ⚠ Warning    |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_style_prefer_pattern_matching = true:suggestion\ncsharp_style_pattern_matching_over_as_with_null_check = true:warning\ncsharp_style_pattern_matching_over_is_with_cast_check = true:warning\ncsharp_style_prefer_not_pattern = true:warning\ncsharp_style_prefer_extended_property_pattern = true:warning\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | Variable preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Prefer inlined variable declaration                         | IDE0018 | Yes                     | ⚠ Warning    |\n| Prefer deconstructed variable declaration                   | IDE0042 | Yes                     | 🛈 Suggestion  |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_style_inlined_variable_declaration = true:warning\ncsharp_style_deconstructed_variable_declaration = true:suggestion\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | _null_ checking\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Prefer throw-expression                                     | IDE0016 | Yes                     | 🛈 Suggestion  |\n| Prefer coalesce expression                                  | IDE0029 | Yes                     | ⚠ Warning    |\n| Prefer null propagation                                     | IDE0031 | Yes                     | ⚠ Warning    |\n| Prefer _is null_ for reference equality checks              | IDE0041 | Yes                     | ⚠ Warning    |\n| Prefer _null_ check over type check                         | IDE0150 | Yes                     | 🛈 Suggestion  |\n| Prefer conditional delegate call                            | IDE1005 | Yes                     | 🛈 Suggestion  |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_style_throw_expression = true:suggestion\ndotnet_style_coalesce_expression = true:warning\ndotnet_style_null_propagation = true:warning\ndotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning\ncsharp_style_prefer_null_check_over_type_check = true:suggestion\ncsharp_style_conditional_delegate_call = true:suggestion\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | _using_ preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Preferred _using_ directive placement                       | IDE0065 | Outside namespace       | ⛔ Error      |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_using_directive_placement = outside_namespace:error\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | Modifier preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Require accesibility modifiers                              | IDE0040 | Yes                     | ⚠ Warning    |\n| Prefer readonly fields                                      | IDE0044 | Yes                     | ⚠ Warning    |\n| Prefer static local functions                               | IDE0062 | Yes                     | ⚠ Warning    |\n| Prefer readonly struct                                      | IDE0250 | Yes                     | 🛈 Suggestion  |\n| Prefer readonly struct member                               | IDE0251 | Yes                     | 🛈 Suggestion  |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_style_require_accessibility_modifiers = true:warning\ndotnet_style_readonly_field = true:warning\ncsharp_prefer_static_local_function = true:warning\ncsharp_style_prefer_readonly_struct = true:suggestion\ncsharp_style_prefer_readonly_struct_member = true:suggestion\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | Parameter preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Avoid unused parameters                                     | IDE0060 | Non-public methods      | ⚠ Warning    |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_code_quality_unused_parameters = non_public:warning\n```\n\n\u003c/details\u003e\n\n\n### Code Style | General | Style\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Use collection expression for empty                         | IDE0301 | Yes                     | ⚠ Warning    |\n| Use collection expression for stackalloc                    | IDE0302 | Yes                     | 🛈 Suggestion  |\n| Use collection expression for _Create()_                    | IDE0303 | Yes                     | ⚠ Warning    |\n| Use collection expression for _builder_                     | IDE0304 | Yes                     | ⚠ Warning    |\n| Use collection expression for _fluent_                      | IDE0305 | Yes                     | ⚠ Warning    |\n| Make anonymous function static                              | IDE0320 | Yes                     | 🛈 Suggestion  |\n| Prefer _System.Threading.Lock_                              | IDE0330 | Yes                     | ⛔ Error  |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_diagnostic.IDE0301.severity = warning\ndotnet_diagnostic.IDE0302.severity = suggestion\ndotnet_diagnostic.IDE0303.severity = warning\ndotnet_diagnostic.IDE0304.severity = warning\ndotnet_diagnostic.IDE0305.severity = warning\ndotnet_diagnostic.IDE0320.severity = suggestion\ndotnet_diagnostic.IDE0330.severity = error\n```\n\n\u003c/details\u003e\n\n### Code Style | General | New line preferences\n| Description _______________________________________________ | Code    | Preference ____________ | !! Severity !! |\n| :---------------------------------------------------------- | :-----: | :---------------------- | :-----------: |\n| Allow multiple blank lines                                  | IDE2000 | No                      | ⚠ Warning    |\n| Allow embeded statements on same line                       | IDE2001 | No                      | ⚠ Warning    |\n| Allow blank lines between consecutive braces                | IDE2002 | No                      | ⚠ Warning    |\n| Allow statement immediately after block                     | IDE2003 | No                      | ⚠ Warning    |\n| Allow blank line after colon in constructor initializer     | IDE2004 | No                      | ⛔ Error      |\n| Allow blank line after token in conditional expression      | IDE2005 | No                      | ⛔ Error      |\n| Allow blank line after token in arrow expression clause     | IDE2006 | Yes                     | 🛈 Suggestion  |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_style_allow_multiple_blank_lines_experimental = false:warning\ncsharp_style_allow_embedded_statements_on_same_line_experimental = false:warning\ncsharp_style_allow_blank_lines_between_consecutive_braces_experimental = false:warning\ndotnet_style_allow_statement_immediately_after_block_experimental = false:warning\ncsharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = false:error\ncsharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = false:error\ncsharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:suggestion\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | General\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Automatically format when typing                                                      |   🗹   |\n| Automatically format statement on _;_                                                 |   🗹   |\n| Automatically format block on _}_                                                     |   🗹   |\n| Automatically format on return                                                        |   🗹   |\n| Automatically format on paste                                                         |   🗹   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\n# Configurable at VS level\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | Indentation | General\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Indent code blocks                                                                    |   🗹   |\n| Indent open and close braces                                                          |   ☐   |\n| Indent case contents                                                                  |   🗹   |\n| Indent case contents (when block)                                                     |   ☐   |\n| Indent case labels                                                                    |   🗹   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_indent_block_contents = true\ncsharp_indent_braces = false\ncsharp_indent_case_contents = true\ncsharp_indent_case_contents_when_block = false\ncsharp_indent_switch_labels = true\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | Indentation | Label Indentation\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Place _goto_ labels in leftmost column                                                |   ☐   |\n| Indent labels normally                                                                |   ☐   |\n| Place _goto_ labels one indent less than content                                      |   🗹   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_indent_labels = one_less_than_current\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | New Lines | New line options for braces\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Place open brace on new line for types                                                |   🗹   |\n| Place open brace on new line for methods and local functions                          |   🗹   |\n| Place open brace on new line for properties, indexers, and events                     |   🗹   |\n| Place open brace on new line for property, indexer, and event accessors               |   🗹   |\n| Place open brace on new line for anonymous methods                                    |   🗹   |\n| Place open brace on new line for control blocks                                       |   🗹   |\n| Place open brace on new line for anonymous types                                      |   🗹   |\n| Place open brace on new line for object, collection, array, and with initializers     |   🗹   |\n| Place open brace on new line for lambda expression                                    |   🗹   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_new_line_before_open_brace = all\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | New Lines | New line options for keywords\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Place _else_ on new line                                                              |   🗹   |\n| Place _catch_ on new line                                                             |   🗹   |\n| Place _finally_ on new line                                                           |   🗹   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_new_line_before_else = true\ncsharp_new_line_before_catch = true\ncsharp_new_line_before_finally = true\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | New Lines | New line options for expressions\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Place members in object initializers on new line                                      |   🗹   |\n| Place members in anonymous types on new line                                          |   🗹   |\n| Place query expression clauses on new line                                            |   🗹   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_new_line_before_members_in_object_initializers = true\ncsharp_new_line_before_members_in_anonymous_types = true\ncsharp_new_line_between_query_expression_clauses = true\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | Spacing | Set spacing for method declarations\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Insert space between method name and its opening parenthesis                          |   ☐   |\n| Insert space within parameter list parentheses                                        |   ☐   |\n| Insert space within empty parameter list parentheses                                  |   ☐   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_space_between_method_declaration_name_and_open_parenthesis = false\ncsharp_space_between_method_declaration_parameter_list_parentheses = false\ncsharp_space_between_method_declaration_empty_parameter_list_parentheses = false\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | Spacing | Set spacing for method calls\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Insert space between method name and its opening parenthesis                          |   ☐   |\n| Insert space within argument list parentheses                                         |   ☐   |\n| Insert space within empty argument list parentheses                                   |   ☐   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_space_between_method_call_name_and_opening_parenthesis = false\ncsharp_space_between_method_call_parameter_list_parentheses = false\ncsharp_space_between_method_call_empty_parameter_list_parentheses = false\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | Spacing | Set other spacing options\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Insert space after keywords in control flow statements                                |   🗹   |\n| Insert space within parentheses of expressions                                        |   ☐   |\n| Insert space within parentheses of type casts                                         |   ☐   |\n| Insert space within parentheses of control flow statements                            |   ☐   |\n| Insert space after cast                                                               |   ☐   |\n| Insert space in declaration statements                                                |   ☐   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_space_after_keywords_in_control_flow_statements = true\ncsharp_space_between_parentheses = false\ncsharp_space_after_cast = false\ncsharp_space_around_declaration_statements = false\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | Spacing | Set spacing for brackets\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Insert space before open square bracket                                               |   ☐   |\n| Insert space within empty square brackets                                             |   ☐   |\n| Insert space within square brackets                                                   |   ☐   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_space_before_open_square_brackets = false\ncsharp_space_between_square_brackets = false\ncsharp_space_between_empty_square_brackets = false\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | Spacing | Set spacing for delimiters\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Insert space before colon for base or interface in type declarations                  |   🗹   |\n| Insert space after colon for base or interface in type declarations                   |   🗹   |\n| Insert space before comma                                                             |   ☐   |\n| Insert space after comma                                                              |   🗹   |\n| Insert space before dot                                                               |   ☐   |\n| Insert space after dot                                                                |   ☐   |\n| Insert space before semicolon in _for_ statement                                      |   ☐   |\n| Insert space after semicolon in _for_ statement                                       |   🗹   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_space_before_colon_in_inheritance_clause = true\ncsharp_space_after_colon_in_inheritance_clause = true\ncsharp_space_before_comma = false\ncsharp_space_after_comma = true\ncsharp_space_before_dot = false\ncsharp_space_after_dot = false\ncsharp_space_before_semicolon_in_for_statement = false\ncsharp_space_after_semicolon_in_for_statement = true\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | Spacing | Set spacing for operators\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Ignore spaces around binary operators                                                 |   ☐   |\n| Remove spaces before and after binary operators                                       |   ☐   |\n| Insert space before and after binary operators                                        |   🗹   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_space_around_binary_operators = before_and_after\n```\n\n\u003c/details\u003e\n\n\n### Code Style | Formatting | Wrapping\n| Description _________________________________________________________________________ | Value |\n| :------------------------------------------------------------------------------------ | :---: |\n| Leave block on single line                                                            |   🗹   |\n| Leave statements and member declarations on the same line                             |   ☐   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ncsharp_preserve_single_line_blocks = true\ncsharp_preserve_single_line_statements = false\n```\n\n\u003c/details\u003e\n\n\n## Microsoft.CodeAnalysis.NetAnalyzers\n\n### Microsoft.CodeAnalysis.NetAnalyzers | Design\n| Code                                                                                              | Description ___________________________________________________________________________                                                  | !! Severity !! |\n| :-----------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------- | :------------: |\n| [CA1000](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1000) | Do not declare static members on generic types                                                                                           | ⚠ Warning     |\n| [CA1001](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1001) | Types that own disposable fields should be disposable                                                                                    | ⚠ Warning     |\n| [CA1002](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1002) | Do not expose generic lists                                                                                                              | ⚠ Warning     |\n| [CA1003](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1003) | Use generic event handler instances                                                                                                      | 🞅 None         |\n| [CA1005](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1005) | Avoid excessive parameters on generic types                                                                                              | ⚠ Warning     |\n| [CA1008](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1008) | Enums should have zero value                                                                                                             | ⚠ Warning     |\n| [CA1010](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1010) | Collections should implement generic interface                                                                                           | 🛈 Suggestion   |\n| [CA1012](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1012) | Abstract types should not have public constructors                                                                                       | ⚠ Warning     |\n| [CA1014](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1014) | Mark assemblies with CLSCompliantAttribute                                                                                               | 🞅 None         |\n| [CA1016](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1016) | Mark assemblies with AssemblyVersionAttribute                                                                                            | 🞅 None         |\n| [CA1017](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1017) | Mark assemblies with ComVisibleAttribute                                                                                                 | 🞅 None         |\n| [CA1018](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1018) | Mark attributes with AttributeUsageAttribute                                                                                             | ⚠ Warning     |\n| [CA1019](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1019) | Define accessors for attribute arguments                                                                                                 | 🛈 Suggestion   |\n| [CA1021](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1021) | Avoid out parameters                                                                                                                     | 🛈 Suggestion   |\n| [CA1024](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1024) | Use properties where appropriate                                                                                                         | 🛈 Suggestion   |\n| [CA1027](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1027) | Mark enums with FlagsAttribute                                                                                                           | 🛈 Suggestion   |\n| [CA1028](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1028) | Enum storage should be Int32                                                                                                             | ⚠ Warning     |\n| [CA1030](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1030) | Use events where appropriate                                                                                                             | 🞅 None         |\n| [CA1031](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1031) | Do not catch general exception types                                                                                                     | 🛈 Suggestion   |\n| [CA1032](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1032) | Implement standard exception constructors                                                                                                | ⚠ Warning     |\n| [CA1033](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1033) | Interface methods should be callable by child types                                                                                      | ⚠ Warning     |\n| [CA1034](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1034) | Nested types should not be visible                                                                                                       | ⚠ Warning     |\n| [CA1036](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1036) | Override methods on comparable types                                                                                                     | 🛈 Suggestion   |\n| [CA1040](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1040) | Avoid empty interfaces                                                                                                                   | 🞅 None         |\n| [CA1041](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1041) | Provide ObsoleteAttribute message                                                                                                        | ⛔ Error       |\n| [CA1043](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1043) | Use integral or string argument for indexers                                                                                             | ⚠ Warning     |\n| [CA1044](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1044) | Properties should not be write only                                                                                                      | 🞅 None         |\n| [CA1045](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1045) | Do not pass types by reference                                                                                                           | ⚠ Warning     |\n| [CA1046](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1046) | Do not overload operator equals on reference types                                                                                       | ⚠ Warning     |\n| [CA1047](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1047) | Do not declare protected members in sealed types                                                                                         | 🞅 None         |\n| [CA1050](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1050) | Declare types in namespaces                                                                                                              | ⚠ Warning     |\n| [CA1051](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1051) | Do not declare visible instance fields                                                                                                   | 🞅 None         |\n| [CA1052](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1052) | Static holder types should be Static or NotInheritable                                                                                   | ⛔ Error       |\n| [CA1053](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1053) | Static holder types should not have default constructors                                                                                 | -              |CA\n| [CA1054](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1054) | URI parameters should not be strings                                                                                                     | ⚠ Warning     |\n| [CA1055](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1055) | URI return values should not be strings                                                                                                  | ⚠ Warning     |\n| [CA1056](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1056) | URI properties should not be strings                                                                                                     | ⚠ Warning     |\n| [CA1058](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1058) | Types should not extend certain base types                                                                                               | ⚠ Warning     |\n| [CA1060](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1060) | Move P/Invokes to NativeMethods class                                                                                                    | 🞅 None         |\n| [CA1061](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1061) | Do not hide base class methods                                                                                                           | ⚠ Warning     |\n| [CA1062](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1062) | Validate arguments of public methods                                                                                                     | 🞅 None         |\n| [CA1063](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1063) | Implement IDisposable correctly                                                                                                          | ⚠ Warning     |\n| [CA1064](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1064) | Exceptions should be public                                                                                                              | ⛔ Error       |\n| [CA1065](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1065) | Do not raise exceptions in unexpected locations                                                                                          | ⛔ Error       |\n| [CA1066](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1066) | Implement IEquatable when overriding Equals                                                                                              | ⚠ Warning     |\n| [CA1067](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1067) | Override Equals when implementing IEquatable                                                                                             | ⚠ Warning     |\n| [CA1068](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1068) | CancellationToken parameters must come last                                                                                              | ⚠ Warning     |\n| [CA1069](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1069) | Enums should not have duplicate values                                                                                                   | ⚠ Warning     |\n| [CA1070](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1070) | Do not declare event fields as virtual                                                                                                   | 🛈 Suggestion   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_diagnostic.CA1000.severity = warning\ndotnet_diagnostic.CA1001.severity = warning\ndotnet_diagnostic.CA1002.severity = warning\ndotnet_diagnostic.CA1003.severity = none\ndotnet_diagnostic.CA1005.severity = warning\ndotnet_diagnostic.CA1008.severity = warning\ndotnet_diagnostic.CA1010.severity = suggestion\ndotnet_diagnostic.CA1012.severity = warning\ndotnet_diagnostic.CA1014.severity = none\ndotnet_diagnostic.CA1016.severity = none\ndotnet_diagnostic.CA1017.severity = none\ndotnet_diagnostic.CA1018.severity = warning\ndotnet_diagnostic.CA1019.severity = suggestion\ndotnet_diagnostic.CA1021.severity = suggestion\ndotnet_diagnostic.CA1024.severity = suggestion\ndotnet_diagnostic.CA1027.severity = suggestion\ndotnet_diagnostic.CA1028.severity = warning\ndotnet_diagnostic.CA1030.severity = none\ndotnet_diagnostic.CA1031.severity = suggestion\ndotnet_diagnostic.CA1032.severity = warning\ndotnet_diagnostic.CA1033.severity = warning\ndotnet_diagnostic.CA1034.severity = warning\ndotnet_diagnostic.CA1036.severity = suggestion\ndotnet_diagnostic.CA1040.severity = none\ndotnet_diagnostic.CA1041.severity = error\ndotnet_diagnostic.CA1043.severity = warning\ndotnet_diagnostic.CA1044.severity = none\ndotnet_diagnostic.CA1045.severity = warning\ndotnet_diagnostic.CA1046.severity = warning\ndotnet_diagnostic.CA1047.severity = none\ndotnet_diagnostic.CA1050.severity = warning\ndotnet_diagnostic.CA1051.severity = error\ndotnet_diagnostic.CA1052.severity = error\n#dotnet_diagnostic.CA1053.severity = warning\ndotnet_diagnostic.CA1054.severity = warning\ndotnet_diagnostic.CA1055.severity = warning\ndotnet_diagnostic.CA1056.severity = warning\ndotnet_diagnostic.CA1058.severity = warning\ndotnet_diagnostic.CA1060.severity = none\ndotnet_diagnostic.CA1061.severity = warning\ndotnet_diagnostic.CA1062.severity = none\ndotnet_diagnostic.CA1063.severity = warning\ndotnet_diagnostic.CA1064.severity = error\ndotnet_diagnostic.CA1065.severity = error\ndotnet_diagnostic.CA1066.severity = warning\ndotnet_diagnostic.CA1067.severity = warning\ndotnet_diagnostic.CA1068.severity = warning\ndotnet_diagnostic.CA1069.severity = warning\ndotnet_diagnostic.CA1070.severity = suggestion\n```\n\n\u003c/details\u003e\n\n### Microsoft.CodeAnalysis.NetAnalyzers | Documentation\n| Code                                                                                              | Description ___________________________________________________________________________                                                  | !! Severity !! |\n| :-----------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------- | :------------: |\n| [CA1200](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1200) | Avoid using cref tags with a prefix                                                                                                      | 🞅 None         |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_diagnostic.CA1200.severity = none\n```\n\n\u003c/details\u003e\n\n### Microsoft.CodeAnalysis.NetAnalyzers | Globalization\n| Code                                                                                              | Description ___________________________________________________________________________                                                  | !! Severity !! |\n| :-----------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------- | :------------: |\n| [CA1303](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1303) | Do not pass literals as localized parameters                                                                                             | ⚠ Warning     |\n| [CA1304](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1304) | Specify CultureInfo                                                                                                                      | ⚠ Warning     |\n| [CA1305](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1305) | Specify IFormatProvider                                                                                                                  | ⚠ Warning     |\n| [CA1307](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1307) | Specify StringComparison for clarity                                                                                                     | ⚠ Warning     |\n| [CA1308](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1308) | Normalize strings to uppercase                                                                                                           | 🛈 Suggestion   |\n| [CA1309](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1309) | Use ordinal StringComparison                                                                                                             | ⚠ Warning     |\n| [CA1310](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1310) | Specify StringComparison for correctness                                                                                                 | ⚠ Warning     |\n| [CA1311](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1311) | Specify a culture or use an invariant version                                                                                            | ⚠ Warning     |\n| [CA2101](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2101) | Specify marshalling for P/Invoke string arguments                                                                                        | 🛈 Suggestion   |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_diagnostic.CA1303.severity = warning\ndotnet_diagnostic.CA1304.severity = warning\ndotnet_diagnostic.CA1305.severity = warning\ndotnet_diagnostic.CA1307.severity = warning\ndotnet_diagnostic.CA1308.severity = suggestion\ndotnet_diagnostic.CA1309.severity = warning\ndotnet_diagnostic.CA1310.severity = warning\ndotnet_diagnostic.CA1311.severity = warning\ndotnet_diagnostic.CA2101.severity = suggestion\n```\n\n\u003c/details\u003e\n\n### Microsoft.CodeAnalysis.NetAnalyzers | Interoperability\n| Code                                                                                               | Description ___________________________________________________________________________                                                  | !! Severity !! |\n| :------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------- | :------------: |\n| [CA1401](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1401)  | P/Invokes should not be visible                                                                                                          | 🛈 Suggestion   |\n| [CA1416](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1416)  | Validate platform compatibility                                                                                                          | ⚠ Warning     |\n| [CA1417](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1417)  | Do not use _OutAttribute_ on string parameters for P/Invokes                                                                             | ⚠ Warning     |\n| [CA1418](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1418)  | Validate platform compatibility                                                                                                          | ⚠ Warning     |\n| [CA1419](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1419)  | Provide a parameterless ctor for types derived from                                    \u003cbr /\u003e _System.Runtime.InteropServices.SafeHandle_| 🛈 Suggestion   |\n| [CA1420](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1420) | Property, type, or attribute requires runtime marshalling                                                                                | ⚠ Warning     |\n| [CA1421](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1421) | Method uses runtime marshalling when *DisableRuntimeMarshalling* is applied                                                              | 🛈 Suggestion   |\n| [CA1422](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1422) | Validate platform compatibility - Obsoleted APIs                                                                                         | ⚠ Warning     |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_diagnostic.CA1401.severity = suggestion\ndotnet_diagnostic.CA1416.severity = warning\ndotnet_diagnostic.CA1417.severity = warning\ndotnet_diagnostic.CA1418.severity = warning\ndotnet_diagnostic.CA1419.severity = suggestion\ndotnet_diagnostic.CA1420.severity = warning\ndotnet_diagnostic.CA1421.severity = suggestion\ndotnet_diagnostic.CA1422.severity = warning\n```\n\n\u003c/details\u003e\n\n### Microsoft.CodeAnalysis.NetAnalyzers | Maintainability\n| Code                                                                                               | Description ___________________________________________________________________________                                                  | !! Severity !! |\n| :------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------- | :------------: |\n| [CA1501](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1501)  | Avoid excessive inheritance                                                                                                              | ⚠ Warning     |\n| [CA1502](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1502)  | Avoid excessive complexity                                                                                                               | ⚠ Warning     |\n| [CA1505](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1505)  | Avoid unmaintainable code                                                                                                                | ⚠ Warning     |\n| [CA1506](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1506)  | Avoid excessive class coupling                                                                                                           | ⚠ Warning     |\n| [CA1507](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1507)  | Use _nameof_ in place of string                                                                                                          | ⚠ Warning     |\n| [CA1508](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1508)  | Avoid dead conditional code                                                                                                              | ⚠ Warning     |\n| [CA1509](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1509)  | Invalid entry in code metrics configuration file                                                                                         | ⛔ Error      |\n| [CA1510](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1510)  | Use _ArgumentNullException_ throw helper                                                                                                 | ⚠ Warning     |\n| [CA1511](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1511)  | Use _ArgumentException_ throw helper                                                                                                     | ⚠ Warning     |\n| [CA1512](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1512)  | Use _ArgumentOutOfRangeException_ throw helper                                                                                           | ⚠ Warning     |\n| [CA1513](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1513)  | Use _ObjectDisposedException_ throw helper                                                                                               | ⚠ Warning     |\n| [CA1514](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1514) | Avoid redundant length argument                                                                                                          | ⚠ Warning     |\n| [CA1515](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1515) | Consider making public types internal                                                                                                    | ⚠ Warning     |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_diagnostic.CA1501.severity = warning\ndotnet_diagnostic.CA1502.severity = warning\ndotnet_diagnostic.CA1505.severity = warning\ndotnet_diagnostic.CA1506.severity = warning\ndotnet_diagnostic.CA1507.severity = warning\ndotnet_diagnostic.CA1508.severity = warning\ndotnet_diagnostic.CA1509.severity = error\ndotnet_diagnostic.CA1510.severity = warning\ndotnet_diagnostic.CA1511.severity = warning\ndotnet_diagnostic.CA1512.severity = warning\ndotnet_diagnostic.CA1513.severity = warning\ndotnet_diagnostic.CA1514.severity = warning\ndotnet_diagnostic.CA1515.severity = warning\n```\n\n\u003c/details\u003e\n\n### Microsoft.CodeAnalysis.NetAnalyzers | Naming\n| Code                                                                                              | Description ___________________________________________________________________________                                                  | !! Severity !! |\n| :-----------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------- | :------------: |\n| [CA1700](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1700) | Do not name enum values _Reserved_                                                                                                       | 🛈 Suggestion   |\n| [CA1707](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1707) | Identifiers should not contain underscores                                                                                               | ⛔ Error       |\n| [CA1708](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1708) | Identifiers should differ by more than case                                                                                              | 🛈 Suggestion   |\n| [CA1710](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1710) | Identifiers should have correct suffix                                                                                                   | ⚠ Warning     |\n| [CA1711](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1711) | Identifiers should not have incorrect suffix                                                                                             | ⚠ Warning     |\n| [CA1712](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1712) | Do not prefix enum values with type name                                                                                                 | ⛔ Error       |\n| [CA1713](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1713) | Events should not have before or after prefix                                                                                            | ⚠ Warning     |\n| [CA1714](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1714) | Flags enums should have plural names                                                                                                     | ⚠ Warning     |\n| [CA1715](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1715) | Identifiers should have correct prefix                                                                                                   | ⚠ Warning     |\n| [CA1716](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1716) | Identifiers should not match keywords                                                                                                    | ⚠ Warning     |\n| [CA1717](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1717) | Only _FlagsAttribute_ enums should have plural names                                                                                     | 🛈 Suggestion   |\n| [CA1721](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1721) | Property names should not match get methods                                                                                              | ⚠ Warning     |\n| [CA1720](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1720) | Identifiers should not contain type names                                                                                                | ⚠ Warning     |\n| [CA1724](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1724) | Type names should not match namespaces                                                                                                   | ⚠ Warning     |\n| [CA1725](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1725) | Parameter names should match base declaration                                                                                            | ⚠ Warning     |\n| [CA1727](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1727) | Use PascalCase for named placeholders                                                                                                    | ⚠ Warning     |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_diagnostic.CA1700.severity = suggestion\ndotnet_diagnostic.CA1707.severity = error\ndotnet_diagnostic.CA1708.severity = suggestion\ndotnet_diagnostic.CA1710.severity = warning\ndotnet_diagnostic.CA1711.severity = warning\ndotnet_diagnostic.CA1712.severity = error\ndotnet_diagnostic.CA1713.severity = warning\ndotnet_diagnostic.CA1714.severity = warning\ndotnet_diagnostic.CA1715.severity = warning\ndotnet_diagnostic.CA1716.severity = warning\ndotnet_diagnostic.CA1717.severity = suggestion\ndotnet_diagnostic.CA1720.severity = warning\ndotnet_diagnostic.CA1721.severity = warning\ndotnet_diagnostic.CA1724.severity = warning\ndotnet_diagnostic.CA1725.severity = warning\ndotnet_diagnostic.CA1727.severity = warning\n```\n\n\u003c/details\u003e\n\n### Microsoft.CodeAnalysis.NetAnalyzers | Performance\n| Code                                                                                               | Description ___________________________________________________________________________                                                  | !! Severity !! |\n| :------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------- | :------------: |\n| [CA1802](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1802)  | Use literals where appropriate                                                                                                           | ⚠ Warning     |\n| [CA1805](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1805)  | Do not initialize unnecessarily                                                                                                          | ⚠ Warning     |\n| [CA1806](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1806)  | Do not ignore method results                                                                                                             | ⚠ Warning     |\n| [CA1810](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1810)  | Initialize reference type static fields inline                                                                                           | ⚠ Warning     |\n| [CA1812](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1812)  | Avoid uninstantiated internal classes                                                                                                    | ⚠ Warning     |\n| [CA1813](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1813)  | Avoid unsealed attributes                                                                                                                | ⛔ Error       |\n| [CA1814](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1814)  | Prefer jagged arrays over multidimensional                                                                                               | 🛈 Suggestion   |\n| [CA1815](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1815)  | Override equals and operator equals on value types                                                                                       | ⚠ Warning     |\n| [CA1819](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1819)  | Properties should not return arrays                                                                                                      | ⚠ Warning     |\n| [CA1820](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1820)  | Test for empty strings using string length                                                                                               | ⚠ Warning     |\n| [CA1821](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1821)  | Remove empty finalizers                                                                                                                  | ⚠ Warning     |\n| [CA1822](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1822)  | Mark members as static                                                                                                                   | ⚠ Warning     |\n| [CA1823](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1823)  | Avoid unused private fields                                                                                                              | ⚠ Warning     |\n| [CA1824](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1824)  | Mark assemblies with _NeutralResourcesLanguageAttribute_                                                                                 | 🞅 None         |\n| [CA1825](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1825)  | Avoid zero-length array allocations                                                                                                      | ⚠ Warning     |\n| [CA1826](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1826)  | Use property instead of Linq Enumerable method                                                                                           | ⚠ Warning     |\n| [CA1827](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1827)  | Do not use _Count_/_LongCount_ when _Any_ can be used                                                                                    | ⚠ Warning     |\n| [CA1828](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1828)  | Do not use _CountAsync_/_LongCountAsync_ when _AnyAsync_ can be used                                                                     | ⚠ Warning     |\n| [CA1829](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1829)  | Use _Length_/_Count_ property instead of _Enumerable.Count_ method                                                                       | ⚠ Warning     |\n| [CA1830](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1830)  | Prefer strongly-typed _Append_ and _Insert_ method overloads on _StringBuilder_                                                          | ⚠ Warning     |\n| [CA1831](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1831)  | Use _AsSpan_ instead of Range-based indexers for string when appropriate                                                                 | 🛈 Suggestion   |\n| [CA1832](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1832)  | Use _AsSpan_ or _AsMemory_ instead of Range-based indexers for getting                 \u003cbr /\u003e ReadOnlySpan or ReadOnlyMemory [..]        | 🛈 Suggestion   |\n| [CA1833](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1833)  | Use _AsSpan_ or _AsMemory_ instead of Range-based indexers for getting                 \u003cbr /\u003e Span or Memory [..]                        | 🛈 Suggestion   |\n| [CA1834](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1834)  | Use _StringBuilder.Append(char)_ for single character strings                                                                            | ⚠ Warning     |\n| [CA1835](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1835)  | Prefer the memory-based overloads of _ReadAsync_/_WriteAsync_ methods [..]                                                               | 🛈 Suggestion   |\n| [CA1836](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1836)  | Prefer _IsEmpty_ over _Count_ when available                                                                                             | ⚠ Warning     |\n| [CA1837](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1837)  | Use _Environment.ProcessId_ instead of _Process.GetCurrentProcess().Id_                                                                  | 🛈 Suggestion   |\n| [CA1838](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1838)  | Avoid StringBuilder parameters for P/Invokes                                                                                             | 🛈 Suggestion   |\n| [CA1839](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1839)  | Use _Environment.ProcessPath_ [..]                                                                                                       | 🛈 Suggestion   |\n| [CA1840](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1840)  | Use _Environment.CurrentManagedThreadId_ [..]                                                                                            | 🛈 Suggestion   |\n| [CA1841](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1841)  | Prefer Dictionary Contains methods                                                                                                       | ⚠ Warning     |\n| [CA1842](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1842)  | Do not use _WhenAll_ with a single task                                                                                                  | ⛔ Error       |\n| [CA1843](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1843)  | Do not use _WaitAll_ with a single task                                                                                                  | ⛔ Error       |\n| [CA1844](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1844)  | Provide memory-based overrides of async methods when subclassing _Stream_                                                                | ⚠ Warning     |\n| [CA1845](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1845)  | Use span-based _string.Concat_                                                                                                           | ⚠ Warning     |\n| [CA1846](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1846)  | Prefer _AsSpan_ over _Substring_                                                                                                         | ⚠ Warning     |\n| [CA1847](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1847)  | Use _string.Contains(char)_ instead of _string.Contains(string)_ with single chars                                                       | ⚠ Warning     |\n| [CA1848](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1848)  | Use the LoggerMessage delegates                                                                                                          | 🛈 Suggestion   |\n| [CA1849](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1849)  | Call async methods when in an async method                                                                                               | ⚠ Warning     |\n| [CA1850](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1850)  | Prefer static _HashData_ method over _ComputeHash_                                                                                       | 🞅 None         |\n| [CA1851](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1851)  | Possible multiple enumerations of IEnumerable collection                                                                                 | ⚠ Warning     |\n| [CA1852](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1852) | Seal internal types                                                                                                                      | ⚠ Warning     |\n| [CA1853](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1853) | Unnecessary call to *Dictionary.ContainsKey(key)*                                                                                        | ⚠ Warning     |\n| [CA1854](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1854) | Prefer the *IDictionary.TryGetValue(TKey, out TValue)* method                                                                            | 🛈 Suggestion   |\n| [CA1855](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1855) | Use *Span[T].Clear()* instead of *Span[T].Fill()*                                                                                        | 🛈 Suggestion   |\n| [CA1856](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1856) | Incorrect usage of _ConstantExpected_ attribute                                                                                          | ⛔ Error       |\n| [CA1857](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1857) | The parameter expects a constant for optimal performance                                                                                 | ⚠ Warning     |\n| [CA1858](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1858) | Use _StartsWith_ instead of _IndexOf_                                                                                                    | ⚠ Warning     |\n| [CA1859](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1859) | Use concrete types when possible for improved performance                                                                                | 🛈 Suggestion   |\n| [CA1860](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1860) | Avoid using _Enumerable.Any()_ extension method                                                                                          | ⚠ Warning     |\n| [CA1861](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1861) | Avoid constant arrays as arguments                                                                                                       | ⚠ Warning     |\n| [CA1862](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1862) | Use the _StringComparison_ method overloads for case-insensitive comparisons                                                             | ⚠ Warning     |\n| [CA1863](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1863) | Use _CompositeFormat_                                                                                                                    | 🛈 Suggestion   |\n| [CA1864](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1864) | Prefer the _IDictionary.TryAdd(TKey, TValue)_ method                                                                                     | ⚠ Warning     |\n| [CA1865](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1865) | Use _string.Method(char)_ instead of _string.Method(string)_ for string with one char                                                    | ⚠ Warning     |\n| [CA1866](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1866) | Use _string.Method(char)_ instead of _string.Method(string)_ for string with one char                                                    | ⚠ Warning     |\n| [CA1867](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1867) | Use _string.Method(char)_ instead of _string.Method(string)_ for string with one char                                                    | 🛈 Suggestion   |\n| [CA1868](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1868) | Unnecessary call to _Contains_ for sets                                                                                                  | ⚠ Warning     |\n| [CA1869](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1869) | Cache and reuse _JsonSerializerOptions_ instances                                                                                        | ⚠ Warning     |\n| [CA1870](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1870) | Use a cached _SearchValues_ instance                                                                                                     | ⚠ Warning     |\n| [CA1871](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1871) | Do not pass a nullable struct to _ArgumentNullException.ThrowIfNull_                                                                      | ⚠ Warning     |\n| [CA1872](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1872) | Prefer *Convert.ToHexString* and *Convert.ToHexStringLower* over call chains based on _BitConverter.ToString_                             | ⚠ Warning     |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_diagnostic.CA1802.severity = warning\ndotnet_diagnostic.CA1805.severity = warning\ndotnet_diagnostic.CA1806.severity = warning\ndotnet_diagnostic.CA1810.severity = warning\ndotnet_diagnostic.CA1812.severity = warning\ndotnet_diagnostic.CA1813.severity = error\ndotnet_diagnostic.CA1814.severity = suggestion\ndotnet_diagnostic.CA1815.severity = warning\ndotnet_diagnostic.CA1819.severity = warning\ndotnet_diagnostic.CA1820.severity = warning\ndotnet_diagnostic.CA1821.severity = warning\ndotnet_diagnostic.CA1822.severity = warning\ndotnet_diagnostic.CA1823.severity = warning\ndotnet_diagnostic.CA1824.severity = none\ndotnet_diagnostic.CA1825.severity = warning\ndotnet_diagnostic.CA1826.severity = warning\ndotnet_diagnostic.CA1827.severity = warning\ndotnet_diagnostic.CA1828.severity = warning\ndotnet_diagnostic.CA1829.severity = warning\ndotnet_diagnostic.CA1830.severity = warning\ndotnet_diagnostic.CA1831.severity = suggestion\ndotnet_diagnostic.CA1832.severity = suggestion\ndotnet_diagnostic.CA1833.severity = suggestion\ndotnet_diagnostic.CA1834.severity = warning\ndotnet_diagnostic.CA1835.severity = suggestion\ndotnet_diagnostic.CA1836.severity = warning\ndotnet_diagnostic.CA1837.severity = suggestion\ndotnet_diagnostic.CA1838.severity = suggestion\ndotnet_diagnostic.CA1839.severity = suggestion\ndotnet_diagnostic.CA1840.severity = suggestion\ndotnet_diagnostic.CA1841.severity = warning\ndotnet_diagnostic.CA1842.severity = error\ndotnet_diagnostic.CA1843.severity = error\ndotnet_diagnostic.CA1844.severity = warning\ndotnet_diagnostic.CA1845.severity = warning\ndotnet_diagnostic.CA1846.severity = warning\ndotnet_diagnostic.CA1847.severity = warning\ndotnet_diagnostic.CA1848.severity = suggestion\ndotnet_diagnostic.CA1849.severity = warning\ndotnet_diagnostic.CA1850.severity = none\ndotnet_diagnostic.CA1851.severity = warning\ndotnet_diagnostic.CA1852.severity = warning\ndotnet_diagnostic.CA1853.severity = warning\ndotnet_diagnostic.CA1854.severity = suggestion\ndotnet_diagnostic.CA1855.severity = suggestion\ndotnet_diagnostic.CA1856.severity = error\ndotnet_diagnostic.CA1857.severity = warning\ndotnet_diagnostic.CA1858.severity = warning\ndotnet_diagnostic.CA1859.severity = suggestion\ndotnet_diagnostic.CA1860.severity = warning\ndotnet_diagnostic.CA1861.severity = warning\ndotnet_diagnostic.CA1862.severity = warning\ndotnet_diagnostic.CA1863.severity = suggestion\ndotnet_diagnostic.CA1864.severity = warning\ndotnet_diagnostic.CA1865.severity = warning\ndotnet_diagnostic.CA1866.severity = warning\ndotnet_diagnostic.CA1867.severity = suggestion\ndotnet_diagnostic.CA1868.severity = warning\ndotnet_diagnostic.CA1869.severity = warning\ndotnet_diagnostic.CA1870.severity = warning\ndotnet_diagnostic.CA1871.severity = warning\ndotnet_diagnostic.CA1872.severity = warning\n```\n\n\u003c/details\u003e\n\n### Microsoft.CodeAnalysis.NetAnalyzers | Reliability\n| Code                                                                                               | Description ___________________________________________________________________________                                                  | !! Severity !! |\n| :------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------- | :------------: |\n| [CA2000](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2000)  | Dispose objects before losing scope                                                                                                      | 🛈 Suggestion   |\n| [CA2002](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2002)  | Do not lock on objects with weak identity                                                                                                | ⛔ Error       |\n| [CA2007](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2007)  | Do not directly await a Task                                                                                                             | 🞅 None         |\n| [CA2008](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2008)  | Do not create tasks without passing a _TaskScheduler_                                                                                    | 🛈 Suggestion   |\n| [CA2009](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2009)  | Do not call _ToImmutableCollection_ on an _ImmutableCollection_ value                                                                    | ⚠ Warning     |\n| [CA2011](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2011)  | Do not assign property within its setter                                                                                                 | ⛔ Error       |\n| [CA2012](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2012)  | Use _ValueTasks_ correctly                                                                                                               | 🛈 Suggestion   |\n| [CA2013](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2013)  | Do not use _ReferenceEquals_ with value types                                                                                            | ⚠ Warning     |\n| [CA2014](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2014)  | Do not use _stackalloc_ in loops                                                                                                         | ⚠ Warning     |\n| [CA2015](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2015)  | Do not define finalizers for types derived from _MemoryManager\u003cT\u003e_                                                                       | ⚠ Warning     |\n| [CA2016](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2016)  | Forward the _CancellationToken_ parameter to methods that take one                                                                       | ⚠ Warning     |\n| [CA2017](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2017)  | Parameter count mismatch                                                                                                                 | ⚠ Warning     |\n| [CA2018](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2018)  | The count argument to _Buffer.BlockCopy_ should specify the number of bytes [..]                                                         | ⚠ Warning     |\n| [CA2019](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2019) | *ThreadStatic* fields should not use inline initialization                                                                               | 🛈 Suggestion   |\n| [CA2020](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2020) | Prevent behavioral change caused by built-in operators of *IntPtr/UIntPtr*                                                               | 🛈 Suggestion   |\n| [CA2021](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2021) | Don't call _Enumerable.Cast\u003cT\u003e_ or _Enumerable.OfType\u003cT\u003e_ with incompatible types                                                        | ⚠ Warning     |\n| [CA2022](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2022) | Avoid inexact read with *Stream.Read*                                                                                                    | ⚠ Warning     |\n\n\u003cdetails\u003e\n  \u003csummary\u003e .editorconfig \u003c/summary\u003e\n\n``` EditorConfig\ndotnet_diagnostic.CA2000.severity = suggestion\ndotnet_diagnostic.CA2002.severity = error\ndotnet_diagnostic.CA2007.severity = none\ndotnet_diagnostic.CA2008.severity = suggestion\ndotnet_diagnostic.CA2009.severity = warning\ndotnet_diagnostic.CA2011.severity = error\ndotnet_diagnostic.CA2012.severity = suggestion\ndotnet_diagnostic.CA2013.severity = warning\ndotnet_diagnostic.CA2014.severity = warning\ndotnet_diagnostic.CA2015.severity = warning\ndotnet_diagnostic.CA2016.severity = warning\ndotnet_diagnostic.CA2017.severity = warning\ndotnet_diagnostic.CA2018.severity = warning\ndotnet_diagnostic.CA2019.severity = suggestion\ndotnet_diagnostic.CA2020.severity = suggestion\ndotnet_diagnostic.CA2021.severity = warning\ndotnet_diagnostic.CA2022.severity = warning\n```\n\n\u003c/details\u003e\n\n### Microsoft.CodeAnalysis.NetAnalyzers | Security\n| Code                                                                                              | Description ___________________________________________________________________________                                                  | !! Severity !! |\n| :-----------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------- | :------------: |\n| [CA2100](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2100) | Review SQL queries for security vulnerabilities                                                                                          | ⚠ Warning     |\n| [CA2109](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2109) | Review visible event handlers                                                                                                            | ⚠ Warning     |\n| [CA2119](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2119) | Seal methods that satisfy private interfaces                                                                                             | ⚠ Warning     |\n| [CA2153](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2153) | Avoid handling Corrupted State Exceptions                                                                                                | ⚠ Warning     |\n| [CA2300](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2300) | Do not use insecure deserializer BinaryFormatter                                                                                         | ⛔ Error       |\n| [CA2301](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2301) | Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder                                                     | 🞅 None         |\n| [CA2302](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2302) | Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize                                                          | 🞅 None         |\n| [CA2305](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2305) | Do not use insecure deserializer LosFormatter                                                                                            | ⛔ Error       |\n| [CA2310](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2310) | Do not use insecure deserializer NetDataContractSerializer                                                                               | ⛔ Error       |\n| [CA2311](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2311) | Do not deserialize without first setting NetDataContractSerializer.Binder                                                                | 🞅 None         |\n| [CA2312](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2312) | Ensure NetDataContractSerializer.Binder is set before deserializing                                                                      | 🞅 None         |\n| [CA2315](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2315) | Do not use insecure deserializer ObjectStateFormatter                                                                                    | ⛔ Error       |\n| [CA2321](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2321) | Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver                                                                  | ⚠ Warning     |\n| [CA2322](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2322) | Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver [..]                                                              | ⚠ Warning     |\n| [CA2326](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2326) | Do not use TypeNameHandling values other than None                                                                                       | ⚠ Warning     |\n| [CA2327](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2327) | Do not use insecure JsonSerializerSettings                   ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimitrietataru%2Fcsharp-coding-standards","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdimitrietataru%2Fcsharp-coding-standards","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimitrietataru%2Fcsharp-coding-standards/lists"}