C# 为什么';t resharper建议删除冗余访问修饰符?

C# 为什么';t resharper建议删除冗余访问修饰符?,c#,.net,resharper,access-modifiers,C#,.net,Resharper,Access Modifiers,正如任何富勒人所知道的那样,雷沙珀是一流的 但是,如果我声明了这样一种方法: private void MethodName() { //code in here } 或枚举: public enum SomeEnum { Value1, Value2 } Resharper不建议删除冗余访问修饰符。。。为什么不呢?默认情况下,没有访问修饰符是违反StyleCop的行为(如果您足够挑剔,可以打开所有规则)。很可能,因为您是这样配置的:ReSharper->Options->Languages

正如任何富勒人所知道的那样,雷沙珀是一流的

但是,如果我声明了这样一种方法:

private void MethodName() { //code in here }
或枚举:

public enum SomeEnum { Value1, Value2 }

Resharper不建议删除冗余访问修饰符。。。为什么不呢?

默认情况下,没有访问修饰符是违反StyleCop的行为(如果您足够挑剔,可以打开所有规则)。

很可能,因为您是这样配置的:ReSharper->Options->Languages->C#->格式化样式->其他->使用显式私有/内部修饰符,所以也不建议删除多余的注释。它认识到,代码文件的某些内容虽然在技术上对编译器来说是多余的,但可以增强代码的可读性,从而提高可维护性。

最好明确这些内容。它避免了混乱,在编辑时花费很少的时间,而在编译时却没有花费时间。请不要从代码中删除它们!它们在每种语言中都不一样,最好是明确地表达出来。在这种情况下,冗余不会损害任何东西,实际上可以提高可读性。嗯,这是有争议的,因为什么是“更好”的,什么不是。这是一个很好的问题,但您的示例中的修饰符
public
并不是冗余的。默认情况下,枚举将是
内部
(如果它不在其他类型中)或
私有
(如果它嵌套在类中)。默认情况下,枚举的成员是公共的,指定它们的访问权限甚至是非法的:
enum SomeEnum{public Value1,public Value2,}
不会编译。我不喜欢前两个回复,@nicodems13。你的评论是正确的:“更好”在旁观者的眼里。我想做这样的事情。有很多选择。我发现这个问题试图让它变得多余的括号会发出警告。同样的交易:我希望它这样做。我只是想知道这是不是一个选择。现在这只是一个建议。当你说“多余”的评论时,我想你是指空洞的评论;)它还不足以聪明地发现一些程序员的评论实际上没有任何语义价值!不,我只是说注释和访问修饰符(如果是默认值)对编译器来说都是同等冗余的。它们只对程序员有用。顺便说一句,Resharper确实建议删除空注释,因为它知道这些注释对程序员来说也是多余的!这是默认值。不过,感谢您的提醒。在Resharper Ultimate 10中,现在看来实现这一点的路径是:Resharper->Options->Code Editing->C#->Code Style->Modifiers->更喜欢显式/隐式内部/私有类型修饰符。那么,为什么还要设置默认值呢?@Nicodems13:对于我们这些懒惰的人,在时间压力下,或者不在乎最挑剔的StyleCop!