如何在Visual Studio中创build新的类时公开默认类?

当我右键单击解决scheme的C#Visual Studio项目,并select添加…>类…它创build一个没有公共修饰符的类。 如何获得Visual Studio(2008)将该类默认为公共类?

您需要修改位于C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033

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

在这之后,通过打开一个Visual Studio命令shell并执行以下命令,确保VS重build它的caching(这只是解压缩到C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache目录中的zipfiles):

 devenv /installvstemplates 

Visual Studio 2012(11.0)及更高版本:请参阅@JochemKempe的答案 ,因为现在只需编辑一个文件(不解压缩或重新压缩)就可以轻松地进行更改。

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

VS2012中 ,就像进入C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class然后编辑Class.cs文件。

不需要解压缩或重buildcaching。 如果你问我一个非常积极的变化。

VS2015C:\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(Professional)C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

为Visual Studio 2012默认创build一个公共类:

编辑此文件: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

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

看看这些链接:

  • VS项目模板上的MSDN
  • 创build你自己的VS项目模板
  • VS项目模板上的CodeProject

渣子

这是一个重新进入PS脚本,将更新C#基类项目模板 。 path根据您使用的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 $_ }