由于在classes
和structs
中公开作为enums
/ Visual Studio
/ Resharper
的默认修改器这一令人失望的事实,我的解决方案现在正在进行的工作有大量的公共类,这些公共类不在他们定义的库之外使用。所以我想把所有这些类都放在内部。而且我不想手动完成。
有没有办法让这项任务自动化?一般来说,我希望有类似Adjust visibility
重构的东西(类似于Resharper的Adjust namespaces
)。
答案 0 :(得分:3)
public
不是C#中的默认访问修饰符。根据{{3}} internal
是默认访问修饰符,如果您指定任何。
如果您明确设置了公共访问修饰符,那么我认为最好手动检查您的代码并选择最佳访问修饰符。
答案 1 :(得分:1)
您可以使用正则表达式查找和替换。例如,在Visual Studio 2012中,以下内容将执行您所需的操作(在搜索框中启用正则表达式匹配后):
public (.*(class|enum|struct))
替换为:
internal $1
之后,您可以使用班级视图仅显示公共成员,并执行手动保留的成员。
对于Visual Studio 2010,语法不同。我认为它是这样的,但无法测试它:
public {:.*(class|enum|struct)}
替换为:
internal \1
您可以找到more information here。