Когда я нажимаю правой кнопкой мыши в решении проекта С# Visual Studio и выбираю Add... > Class..., он создает класс без общедоступного модификатора. Как заставить Visual Studio (2008) присвоить класс классу классу?
Как вы по умолчанию открываете новый класс для публики при его создании в Visual Studio?
Ответ 1
Вам нужно изменить файл, расположенный в C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033
.
Visual Studio 2010 (10.0) и ниже: Здесь есть zip файл, называемый Class.zip. Распакуйте это, отредактируйте файл, чтобы поместить в свое ключе public
, а затем повторно упакуйте его (убедитесь, что вы создали резервную копию оригинала).
После этого убедитесь, что VS перестроит его кеш (который только распакован zipfiles в директории в C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache
), открыв командную оболочку Visual Studio и выполнив следующую команду:
devenv /installvstemplates
Visual Studio 2012 (11.0) и выше: См. ответ @JochemKempe, так как это намного проще изменить сейчас, просто отредактировав один файл (не распаковывая или не распаковывая).
ОБНОВЛЕНИЕ: Не забудьте открыть предпочтительный текстовый редактор с правами администратора, прежде чем выполнять какие-либо изменения.
Ответ 2
В 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 (Professional): C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class
VS2019 (Enterprise): C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
VS2019 (Professional): C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
устаревший
VS2019 (предварительная версия): C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
Ответ 3
Чтобы создать открытый класс по умолчанию для Visual Studio 2012:
Редактировать этот файл: 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
Ответ 4
Вы можете либо создать свой собственный шаблон проекта, либо изменить существующий. Все эти файлы проектов управляются шаблонами, поэтому вы можете их изменять и/или добавлять самостоятельно.
Ознакомьтесь с этими ссылками:
- MSDN для VS-шаблонов проекта
- Создайте свои собственные шаблоны проектов VS
- CodeProject для VS-шаблонов проектов
Марк
Ответ 5
Вот скрипт PS, который обновляет шаблон элемента базового класса С#. Путь изменяется в зависимости от того, какую версию/версию 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 $_
}
Ответ 6
Ответ от JochemKempe работает отлично, но немного сложно, так как вам нужно перезаписать защищенные файлы в Program Files
.
Только чтобы обновить ответ. Шаблоны для издания Community находятся в папке:
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 Form будет выглядеть так:
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
.)
Ответ 7
В дополнение к отличному ответу JochemKempe, вот как это сделать для основных шаблонов .NET.
.NET Core
Вместо того, чтобы редактировать шаблоны внутри \CSharp\
, вам нужно отредактировать \AspNetCore\
внутри \AspNetCore\
.
VS2019 (Enterprise): C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ItemTemplates\AspNetCore\Code\1033\Class\Class.cs
VS2019 (Professional): C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\AspNetCore\Code\1033\Class\Class.cs