VS.NET默认为私有类

时间:2020-03-05 18:46:33  来源:igfitidea点击:

为什么Visual Studio在C#中将新类声明为私有类?我几乎总是将它们切换为公开,我是疯子吗?

解决方案

回答

派生Cis的C ++指定默认的类访问级别为private。不论好坏,都应继续前进。

回答

不,我总是必须在班级的最前面打" public"关键字,所以我们并不孤单。我猜模板设计者认为从基础开始是一个好主意。我们可以在安装Visual Studio的同时编辑这些模板,如果确实让我们大为恼火,但是我还没有到此为止。

回答

我不确定为什么这样做,但是这是为了使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

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

来源

回答

出于安全原因。

我们想公开某些方法,而不是整个类。

回答

对于语言说明符,默认情况下私有访问似乎是一个合理的设计选择。

一个好的通用设计原则是使所有访问级别都尽可能严格,以最大程度地减少依赖性。如果我们开始尽可能严格地限制并让开发人员采取一些措施使类或者成员更加可见,那么最终访问错误级别的可能性就较小。如果某些东西公开性不如我们所需,那么当我们遇到编译错误时,这立即就会显现出来,但是发现比应有的可见性更高的东西并没有那么容易。

回答

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