为什么Visual Studio在C#中将新类声明为私有?我几乎总是把它们交给公众,我是疯了吗?
我不确定为什么会这样做,但是这是为了让Visual Studio默认将类创建为Public所做的工作:
转到"Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033",你会发现一个名为Class.zip的文件,在.zip文件里面打开名为Class.cs的文件,内容该文件看起来像这样:
using System; using System.Collections.Generic; $if$ ($targetframeworkversion$ == 3.5)using System.Linq; $endif$using System.Text; namespace $rootnamespace$ { class $safeitemrootname$ { } }
您需要做的就是在类名之前添加"Public".结果应如下所示:
using System; using System.Collections.Generic; $if$ ($targetframeworkversion$ == 3.5)using System.Linq; $endif$using System.Text; namespace $rootnamespace$ { public class $safeitemrootname$ { } }
您需要做的最后一件事是刷新Visual Studio正在使用的所有模板,并让他重新加载它们.对此的命令是(它需要一段时间,所以坚持):
devenv /installvstemplates
就是这样,默认情况下不再有私有类.当然你也可以添加内部或任何你想要的东西.
资源
默认情况下,私有访问似乎是C#语言说明符的合理设计选择.
一个好的通用设计原则是使所有访问级别尽可能具有限制性,以最小化依赖性.如果您尽可能地限制访问级别并使开发人员采取某些措施使类或成员更加可见,则您不太可能以错误的访问级别结束.如果某些东西不像你需要的那么公开,那么当你遇到编译错误时就会立即显现出来,但是发现比它应该更加明显的东西并不是那么容易.