当前缀有效时,如何防止匈牙利表示法的StyleCop警告

问题描述 投票:11回答:2

我有以下代码:

var fxRate = new FxRate();

这给了我以下StyleCop ReSharper警告:

变量名'fxRate'以类似匈牙利表示法的前缀开头。

我尝试将Settings.StyleCop文件复制到我的解决方案文件夹并为fx添加一个条目:

  <Analyzers>
    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
      <AnalyzerSettings>
        <CollectionProperty Name="Hungarian">
          ...
          <Value>fx</Value>
          ...

我重新启动了VS,但我仍然得到同样的警告。我在VS2017中使用StyleCop ReSharper扩展。

如何确保“fx”是解决方案中的有效前缀(适用于所有团队成员)?

c# visual-studio-2017 stylecop hungarian-notation resharper-2018
2个回答
3
投票

我正在使用带有ReSharper 2018.2的VisualStudio 2017和JetBrains扩展的相应StyleCop(版本2018.2.0 - StyleCop.ReSharper.dll 5.0.6329.1)


在我们的项目中,我在解决方案文件旁边的解决方案文件夹中添加了Settings.StyleCop文件。为了测试你的前缀我已经将fx添加到我的设置文件中,它开箱即用。

我的文件包含以下分析器规则。

<Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
    <Rules>
        <Rule Name="FieldNamesMustNotUseHungarianNotation">
          <RuleSettings>
            <BooleanProperty Name="Enabled">True</BooleanProperty>
          </RuleSettings>
        </Rule>
    </Rules>
    <AnalyzerSettings>
        <CollectionProperty Name="Hungarian">
            ...             
            <Value>fx</Value>
            ..                
        </CollectionProperty>      
   </AnalyzerSettings>

我的Resharper配置如下所示:

StyleCop Configuration


如何确保“fx”是解决方案中所有团队成员的有效前缀?

在我们的项目中,我们总是检查StyleCop设置文件,因此我们确保所有成员都使用正确的文件,我们可以让它保持最新状态。


除了ReSharper插件,您还可以使用StyleCop中的NuGet store包并将其添加到您的解决方案中:

StyleCop - NugetPackage

StyleCop团队建议在使用VisualStudio 2015及更高版本时使用StyleCopAnalyzers而不是StyleCop extension


0
投票

我将ReSharper更新为2018.2.1,现在更新了文件中的值:

 <CollectionProperty Name="Hungarian">
          ...
          <Value>fx</Value>
          ...

正在获得成功认可。这使得警告消失了。

我不确定它是更新本身还是类似缓存被清除的东西。

© www.soinside.com 2019 - 2024. All rights reserved.