原文:【C#】让ReSharper灰色显示未使用的非私有成员的关键
环境:VS2010+ReSharper8
先说答案:
1、在Inspection Severity中设置Non-private accessibility为Warning。如图:
该页面在ReSharper菜单→Options中。贴士:选项是可以搜索的,搜索框在选项区上方
2、启用Solution Wide Analysis(SWA)。启用方法有几种:
- 双击VS最右下角落的圆点,或右击圆点→Analyze Errors in Solution。如图:
- 菜单ReSharper→Options→Code Inspection→Settings→Analyze errors in whole solution,勾上它。如图:
启用该功能会弹提示,说会降低VS性能,占用更多内存啥的,Ok即可。但如果项目不小或机器太烂,确实要慎重。我的理解,启用后,RS会在整个解决方案范围内检查成员使用情况,你想想,一个Solution那么多Project,那么多class member,每一个都要检查,着实不是个轻量简便的活。另外提个醒,这功能也就在当前Solution范围内检查,对于有些很公用的类成员,它不在这个方案里使用,但可能在其它方案里用到,所以也别见到灰色成员就剔~反正大家都懂的,是我啰嗦。
下面开始叽歪:
发现这问题是因为,一直以来都知道对于无任何使用的私有成员,ReSharper是会把它显示为灰色的,对于我这种轻度代码洁癖患者来说,这功能很好,但非私有成员就不会灰显,在选项中也找到了Non-private accessibility,但设为Warning也没用,网上搜半天也搜不到说这问题的,搞的我还以为是RS的bug,专程上书RS feedback,人支持攻城狮很好,很快就给了我回信,看名字还是个雌的。但一开始她也没说到重点,说让我重新建个项目/解决方案啥的看看,后来又让我把RS配置导给她……反正来来回回沟通了若干封Email,可苦了我那蹩脚的english,在此感谢my friend - MS的MVP Alexis(这哥活跃在MS支持社区),以及感谢金山词霸~不用感谢国家了吧,他/它们在翻译上给了我很大帮助,不然光凭我很难完成这次求助。
后来甚至成功勾引到对方给我远程协助~关于远程工具的选用还有个题外,一开始我说我用的是一款叫QQ的IM,这工具有简单的远程协助功能,看您方便不……并且附上QQ国际版的官网给她~尼玛无意中还帮TX推广了下,后来她说要不用TeamViewer吧,看来这QQ在她们那儿还是不受待见呐。后来约好时间,我开好TV,告诉她ID和PWD,她远程过来,我演示了下“问题”给她看,然后她又把RS配置导了一遍,说带回去研究研究,有消息通知我,就闪人了。
过了天把她回信了,这次说到重点了,就说了下这个SWA的意义,让我启用看看,果然问题解决了,然后我对她千恩万谢,然后就没然后了。我估计她也是请教了其它人,才戳中了问题的关键。
Anyway,以后总算可以清晰明了的剔除无用的私有和非私有成员了,再次感谢RS,感谢Alexis,感谢金山词霸。
- 文毕 -