Tag: stylecop

插入字符串c#6.0和Stylecop

我使用的是Stylecop版本:4.7.49.0 有谁在c#6.0中使用了最新的插值字符串function 例 var totalUnits = GetUnitsGetTotalIssuedShares(myId); var testString = $”Test Units :{totalUnits}, have been shipped.”; 当我构建我得到了stylecop错误SA0102 – 因为stylecop无法解析文件。 似乎没有新版本的stylecop可以处理6.0了吗? 错误:SA0102:在文件中发现了语法错误 反正有这个错误吗?

为可变范围目的使用大括号是错误的吗?

我有时会使用大括号来隔离代码块,以避免以后错误地使用变量。 例如,当我在同一个方法中放入几个SqlCommand时,我经常复制粘贴代码块,最后混合名称并执行两次命令。 添加大括号有助于避免这种情况,因为在错误的位置使用错误的SqlCommand将导致错误。 这是一个例子: Collection existingCategories = new Collection(); // Here a beginning of a block { SqlCommand getCategories = new SqlCommand(“select Title from Movie.Category where SourceId = @sourceId”, sqlConnection, sqlTransaction); getCategories.Parameters.AddWithValue(“@sourceId”, sourceId); using (SqlDataReader categoriesReader = getCategories.ExecuteReader(System.Data.CommandBehavior.SingleResult)) { while (categoriesReader.Read()) { existingCategories.Add(categoriesReader[“Title”].ToString()); } } } if (!existingCategories.Contains(newCategory)) { SqlCommand addCategory = new SqlCommand(“insert into […]

如何摆脱StyleCop

我们团队中的某个人安装了StyleCop,从那时起,他加载并承诺源代码控制的所有项目都拒绝加载,除非安装了stylecop。 我知道我可以手动编辑.csproj文件来摆脱它,但是有一种简单的方法可以从项目文件中自动删除这些stylecop部件,以便可以在非Stylecop感染的Visual Studio机器上加载和构建它们吗?

禁用解决方案中特定项目的stylecop分析

有没有办法轻松阻止StyleCop警告显示在解决方案中的特定项目中。 或者更确切地说,是一种选择Visual Studio应该对哪些项目进行StyleCop分析的方法? 我们有一个包含9个项目的解决方案。 我实际上只想看到2个项目的StyleCop警告,所以我在那些项目根目录中创建了StyleCop.Settings文件。 这意味着,对于其余项目,将应用默认规则集,每次打开课程时,我都会看到一个充满警告的屏幕。 我可以考虑删除这些警告的唯一方法是在上面的文件夹级别添加另一个StyleCop.Settings文件并关闭所有规则,并在我感兴趣的特定设置文件上设置合并选项,以便不与此父文件合并。 这只是感觉不对。 有更清洁的选择还是我唯一的? 更新:我正在寻找一种方法来阻止警告出现在Visual Studio中。 我已将Settings.StyleCop文件添加到解决方案文件夹并禁用所有规则。 我在我的一个测试项目中运行StyleCop分析,并且没有报告错误。 但是,打开一个测试类会发现一大堆StyleCop警告,我想要压制它。 这可能是ReSharper插件的StyleCop吗? 我创建了一个代码清理配置文件,并在那里禁用了某些规则,但这似乎在我的测试类中没有任何区别。

CA1500与SA1309 – 哪一个获胜?

我的前缀是说我理解Code Analysis和StyleCop都是指导原则,很多人都选择忽略它们。 但话说回来,我想看看这两条规则的普遍共识是什么。 规则CA1500表示不要使参数名称和私有字段名称相同。 另一方面, 规则SA1309表示不要为成员添加下划线或“m_”作为前缀。 这使我们几乎没有选择区分私有支持字段与其相应的参数。 拿这些例子。 SA1309抱怨: class SomeClass { int _someField; public SomeClass(int someField) { this._someField = someField; } } CA1500抱怨: class SomeClass { int someField; public SomeClass(int someField) { this.someField = someField; } } 我有什么选择? 我不想创建私有支持字段PascalCase,因为这是公共字段/属性的(我相信相当普遍的)约定。 而且我不想重命名其中一个,只是为了解决歧义。 所以我留下了上面两个中的一个,这将要求我压制其中一个SA / CA规则。 你们通常做什么? 更重要的是,这些规则的作者认为你应该做些什么(因为它们都没有在他们的文档中提供替代解决方案)?

代码分析规则CA2000 / CA2202

我正在努力确保我的编码遵循正确的对象处理方式,因此我将这些规则强制执行为错误。 但我在使用这段代码时遇到了麻烦 using System; using System.IO; using System.Runtime.Serialization; using System.Xml; class MyClass { public String ToXml() { var objSerializer = new DataContractSerializer(GetType()); var objStream = new MemoryStream(); StreamReader objReader; String strResult; try { // Serialize the object objSerializer.WriteObject(objStream, this); // Move to start of stream to read out contents objStream.Seek(0, SeekOrigin.Begin); objReader = new StreamReader(objStream); […]

StyleCop SA1124 DoNotUseRegions合理吗?

SA1124 DoNotUseRegions建议不要在任何地方使用该区域。 这真的合理吗? 我认为region是一种将相关代码组合在一起并使大类易于阅读的方法,例如,如果通过上下文菜单为vs2008中的类生成接口方法,则会自动插入一个区域。 我想在检查代码样式时删除此规则。 我可否知道你对这条规则的看法?

是sa1200所有使用指令必须放在命名空间(StyleCop)内部吗?

可能重复: Us Usings应该在命名空间的内部还是外部 sa1200所有using指令必须放在命名空间内(StyleCop) 这仅仅是为了代码可读性还是这样做有什么实际优势? 它以某种方式对GC有帮助吗?