在Visual Studio中创建新类时,如何将新类默认为public?

时间:2009-03-31 05:13:01

标签: visual-studio

当我右键单击C#Visual Studio项目的解决方案并选择Add ...>类...它创建一个没有公共修饰符的类。如何让Visual Studio(2008)将类默认为公共类?

7 个答案:

答案 0 :(得分:105)

VS2012 中,只需转到C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class并编辑Class.cs文件即可。

无需解压缩或重建缓存。如果你问我,这是一个非常积极的变化。

VS2015 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

VS2017(RC)C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

VS2017(专业)C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

VS2019(预览)C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

答案 1 :(得分:57)

您需要修改C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033中的文件。

Visual Studio 2010(10.0)及以下版本:其中有一个名为Class.zip的zip文件。将其解压缩,编辑文件以放入public关键字然后重新打包(确保备份原始文件)。

在此之后,确保VS通过打开Visual Studio命令shell并执行以下命令来重建它的缓存(只是将zip文件解压缩到C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache中的目录中):

devenv /installvstemplates

Visual Studio 2012(11.0)及更高版本: 请参阅the answer by @JochemKempe,因为现在只需编辑单个文件(无解压缩或重新拉链)就可以更轻松地进行更改。

更新:在进行任何编辑之前,不要忘记使用管理员权限打开首选文本编辑器。

答案 2 :(得分:8)

默认情况下为Visual Studio 2012创建一个Public类:

编辑此文件:C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class \ Class.cs

看起来像这样:

using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$endif$using System.Text;
$if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks;
$endif$
namespace $rootnamespace$
{
    public class $safeitemrootname$
    {
    }
}

更多信息:http://aaron-hoffman.blogspot.com/2013/05/edit-default-visual-studio-2012-item.html

答案 3 :(得分:1)

您可以创建自己的项目模板,也可以修改现有模板。所有这些项目文件都是模板驱动的,因此您可以更改它们和/或添加自己的文件。

查看以下链接:

马克

答案 4 :(得分:1)

这是一个可重入的PS scriptlet,它将更新C#基类项模板。路径根据您使用的Visual Studio版本/版本而变化。它还备份原始模板,以备将来恢复时使用。

$csharpClassTemplates = @("C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs",
                          "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplatesCache\CSharp\Code\1033\Class\Class.cs",
                          "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs")

$csharpClassTemplates | % {
    Write-Output("Updating template $_")
    Copy-Item $_ -Destination "$_.backup"
    (get-content $_).Replace('public ', '').Replace('class ', 'public class ') | Set-Content $_
 }

答案 5 :(得分:0)

The answer from JochemKempe可以正常工作,但是有点困难,因为您需要在Program Files中重写受保护的文件。

仅更新答案。社区版的模板位于文件夹中:

c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ProjectTemplates

另一种解决方案

但是还有另一种创建新模板的可能性。将文件从源文件夹复制到用户模板文件夹。

例如对于Windows Form应用程序,它可以是以下源文件夹之一(对于Visual Studio 2017社区):

c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ProjectTemplates\CSharp\Windows Root\Windows\1033\WindowsApplication\
c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplates\CSharp\Windows Root\Windows\1033\WindowsApplication\
c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplatesCache\CSharp\Windows Root\Windows\1033\WindowsApplication\

默认用户模板文件夹为(对于Visual Studio 2017社区)

C:\Users\<username>\Documents\Visual Studio 2017\Templates\ProjectTemplates\

新Windows窗体应用程序模板的目标文件夹为:

C:\Users\<username>\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#\Windows\1033\MyWindowsApplication\

使用此方法,在创建新项目时将有两个“ Windows Form Application”。两者之间的区别仅在于默认文件名。为了更好地进行区分,可以更改模板的显示名称。要更改模板名称,请更新.vstemplate文件。

原始csWindowsApplication.vstemplate包含以下行:

    <Name Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2318" />

要更改名称,您需要将行更改为以下内容:

    <Name ID="2318">My Windows Form Application</Name>

此解决方案的缺点是,您必须重命名新模板,然后向现有模板中添加新模板(旧的“不正确”示例将保留,您仍然可以不情愿地使用它)

但是也有很大一部分。您无需成为管理员即可添加或更新示例。 (无需重写Program Files文件夹中的文件。)

答案 6 :(得分:0)

除了JochemKempe很好的答案,这是针对.NET核心模板的实现方法。


.NET Core

您无需编辑\CSharp\目录中的模板,而需要编辑\AspNetCore\中的模板。

VS2019(企业版)C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ItemTemplates\AspNetCore\Code\1033\Class\Class.cs

VS2019(专业版)C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\AspNetCore\Code\1033\Class\Class.cs