VS.NET默认为私有类

为什么Visual Studio在C#中将新类声明为私有? 我几乎总是把它们交给公众,我是疯了吗?

默认情况下,私有访问似乎是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 

就是这样,默认情况下不再有私有类。 当然你也可以添加内部或任何你想要的东西。

资源

不,我总是不得不在课堂上敲打那个“公共”关键词,所以你并不孤单。 我想模板设计师认为从基础开始是个好主意。 您可以在Visual Studio安装中编辑这些模板,如果它真的让您烦恼,但我还没有达到这一点。

即使您将一个类标记为公共类,默认情况下成员仍然是私有的。 换句话说,该类在同一名称空间之外几乎没用。 我认为默认情况下公开它可能会走得太远。 尝试使用’内部’一些。 它应该为大多数目的提供足够的访问。

导出C#的C ++指定默认的类访问级别是私有的。 C#无论好坏都会向前推进。

出于安全考虑。

您希望公开某些方法而不是整个类。