为何Rider未高亮C#代码中的部分警告(如CS0279)?
解决Rider未检测到CS0279规则违反的问题
问题说明
代码违反CS0279规则时,Visual Studio会正常高亮警告,但Rider无任何提示,且仅对部分CS*规则提供检测反馈。涉事代码如下:
public class myTest : IEnumerable { IEnumerator IEnumerable.GetEnumerator() { yield return 0; } internal IEnumerator GetEnumerator() { yield return 0; } public static void Main() { foreach (int i in new myTest()) {} // CS0279 } }
解决步骤
要让Rider检测到CS0279警告,可按以下操作调整设置:
- 打开Rider的代码检查设置:依次点击
File > Settings > Editor > Inspection Settings > Inspection Severity(Windows/Linux)或Rider > Settings > Editor > Inspection Settings > Inspection Severity(Mac)。 - 查找对应的Roslyn规则:在搜索框中输入
CS0279,找到名为“Explicit interface implementation method is hidden by a non-public method”的规则(CS0279对应的Roslyn分析规则)。 - 调整规则的严重性:将该规则的严重性从
Do not show改为Warning或其他需要的级别,点击Apply保存设置。 - 强制重新分析解决方案:点击菜单栏
Code > Inspect Code,选择整个解决方案进行重新分析,此时Rider就会高亮显示CS0279的警告。
补充说明
Rider默认可能未启用全部Roslyn分析规则,若遇到其他CS*规则无提示的情况,可按同样步骤在Inspection Severity中查找对应CS规则并启用。
内容的提问来源于stack exchange,提问作者Nikita Romashov
相关产品推荐
相关产品推荐

