使内部类不在库外使用

时间:2013-02-14 18:38:33

标签: c# .net visual-studio resharper

由于在classesstructs中公开作为enums / Visual Studio / Resharper的默认修改器这一令人失望的事实,我的解决方案现在正在进行的工作有大量的公共类,这些公共类不在他们定义的库之外使用。所以我想把所有这些类都放在内部。而且我不想手动完成。

有没有办法让这项任务自动化?一般来说,我希望有类似Adjust visibility重构的东西(类似于Resharper的Adjust namespaces)。

2 个答案:

答案 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