【问题标题】:Why are my classes private by default in Visual Studio?为什么我的类在 Visual Studio 中默认是私有的?
【发布时间】:2009-05-27 03:43:55
【问题描述】:

我创建了一个新的类文件,Visual Studio 默认不公开它。 我可以更改吗?

【问题讨论】:

标签: visual-studio


【解决方案1】:

默认情况下,没有访问说明符的类是内部的,成员默认为私有。这样可以尽可能地限制可见性,从而增加封装性。

不考虑就公开一个新类会破坏封装的整个想法。

VS 用来创建新类的类模板可以在这个 zip 文件中找到(如果是 CSharp):

C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates\CSharp\1033\Class.zip 或 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033 使用 VS Orcas 时

打开 zip 文件,添加 public 关键字,保存它就完成了。每次添加课程时,它都会公开。希望这会有所帮助。

Source

【讨论】:

    【解决方案2】:

    默认代码模板还有其他问题 - 例如,它们不符合开箱即用的 StyleCop,因为“使用”行位于命名空间声明之外。

    您可以使用 ReSharper 从模板创建您的类文件,允许您将所需的任何代码放入模板中。这就是我所做的:)

    【讨论】:

      【解决方案3】:

      我听说过对此的抱怨,我不认为这是一个可以更改的选项。

      【讨论】:

        【解决方案4】:

        您的意思是该课程本身在其他课程中不可用?还是您的意思是文件的所有内容都默认为私有访问?

        如果您希望该类在其他类中可见,您只需要确保命名空间在其他类中可见(使用 c# 中的“using”关键字,或者将它们放在同一个命名空间中)。

        不知道你说的是哪种语言,但是在c#中所有的方法、成员变量、属性等都默认为私有的。如果您希望它们公开,则需要为每个成员单独指定。我认为不可能在 c# 中改变这种行为。

        【讨论】:

          【解决方案5】:

          我不认为您可以更改 VS 中的选项,以便默认情况下创建的所有类都是公共的(但我会研究它。)

          我认为,除非您非常具体地需要将所有类声明为公共(我想不出任何),否则您应该保留默认值。这使您可以准确地决定哪些类是公共的,哪些应该保留在内部。在我看来,一个好的设计选项会规定类默认声明为“内部”。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-12-24
            • 2018-09-12
            • 1970-01-01
            • 2019-12-27
            • 2018-04-12
            • 1970-01-01
            • 2010-09-07
            相关资源
            最近更新 更多