
Установите его через командную строку:
Install-Package SharpSourceили добавьте ссылку самостоятельно:
< ItemGroup >
< PackageReference Include = " SharpSource " Version = " 1.26.0 " PrivateAssets = " All " />
</ ItemGroup >Если вы хотите вместо этого установить его как расширение, загрузите его с рынка.
В этом репо содержится коллекция анализаторов, которые направлены на то, чтобы облегчить работу языковых функций и типов структур. Это происходит, подчеркивая, когда вы можете использовать что -то неправильно таким образом, что это приведет к неоптимальной производительности, исключениям времени выполнения или общему непреднамеренному поведению.
Другими словами, этот репо содержит только анализаторы только для шаблонов, которые имеют конкретный потенциал для превращения в билет дефекта . Он не предназначен для того, чтобы помочь в общих задачах домашнего хозяйства, такими как форматирование вашего кода или предоставление помощников по производительности.
Заинтересованы в содействии? Взгляните на руководящие принципы!
Подробные объяснения каждого анализатора можно найти в документации: https://github.com/vannevelj/sharpsource/tree/master/docs
| Код | Имя |
|---|---|
| SS001 | Asyncmethodwithvoidreturntype |
| SS002 | DateTimenow |
| SS003 | Divideintegerbyinteger |
| SS004 | ElementaryMethodsoftypeincollectionnotoverridden |
| SS005 | EqualsAndgethashcodenotimplementedtogether |
| SS006 | Брошен |
| SS007 | FlagSenumValuesArenotPowerSoftwo |
| SS008 | Gethashcodereferstomutablemember |
| SS009 | LoopedrandominStantiation |
| SS010 | Newguid |
| SS011 | OnpropertyChangeDwithOutNameOfoperator |
| SS012 | ReccursiveOperatorOverload |
| SS013 | Reethrowexception без учета StackTrace |
| SS014 | StringDotFormatWithDifferentAmountOfarguments |
| SS015 | StringPlaceholdersInWrongorder |
| SS017 | Structwithoutelementarymethodsoverridden |
| SS018 | SwitchDoesNothandLealLenumOptions |
| SS019 | SwitchismissingDefaultLabel |
| SS020 | Testmethodwithoutpublicmodifier |
| SS021 | TestmethodTithoutTestTtribute |
| SS022 | ExceptionThrownFromiMplicitoPerator |
| SS023 | ExceptionThrownFromPropertyGetter |
| SS024 | ExceptionThrownFromStaticConstructor |
| SS025 | ExceptionThrownFromfinallyblock |
| SS026 | ExceptionThrownFromeTailityoperator |
| SS027 | ExceptionThrownFromDispes |
| SS028 | ExceptionThrownFromfinalizer |
| SS029 | ExceptionThrownFromgethashCode |
| SS030 | ExceptionThrownFromequals |
| SS032 | Threadsleepinasyncmethod |
| SS033 | AsyncoverloadSailable |
| SS034 | Доступен |
| SS035 | Synchronoustaskwait |
| SS036 | EfficitEnumValues |
| SS037 | HttpclientInstantantedediecterly |
| SS038 | HttpContextStoredInfield |
| SS039 | EnumBithoutDefaultValue |
| SS040 | Unaresultonimimutableobject |
| SS041 | Ненужеса |
| SS042 | Extancefield -WithThreadStatic |
| SS043 | Несколько фарбодипаметров |
| SS044 | Attributemustspecifyattributeusage |
| SS045 | StaticInitializerAccededBeinitialization |
| SS046 | Unboundedstackalloc |
| SS047 | Linqtraversalbeforefilter |
| SS048 | LockingOndiscouragedObject |
| SS049 | ComparingStrings с помощью StringComparison |
| SS050 | ParameterAssignEnconstructor |
| SS051 | LockingOnmutableReference |
| SS052 | ThreadStaticWithinitializer |
| SS053 | SanplessCollectionToString |
| SS054 | NewtonsoftmixedWithSystemTextJson |
| SS055 | Несколько заказов .calls |
| SS056 | Formreadsynchronals |
| SS057 | CollectionManipulationDuringTraversal |
| SS058 | StringConcatenedInloop |
| SS059 | Disposeasyncdisposable |
| SS060 | CONCURRENTDICTIONARYEMPTYCHECK |
Особое правило не по себе? Есть много способов скорректировать их тяжесть и даже отключить их вообще. Для обзора некоторых вариантов, ознакомьтесь с этим документом.