Модификатор класса для автоматически сгенерированных классов - PullRequest
3 голосов
/ 26 июля 2010

Когда я добавляю новый класс в проект, модификатор класса / спецификатор доступа для вновь созданного класса в Visual Studio опускается, что делает его internal.

Есть ли способ указать в настройках Visual Studio, что всякий раз, когда я запрашиваю создание нового класса, укажите класс public?

Я посмотрел в меню «Инструменты-> Параметры», но ничего не смог найти. Я предполагаю, что это может быть в папке Шаблоны в папке Мои документы \ Visual Studio xxxx .

Ответы [ 4 ]

3 голосов
/ 26 июля 2010

Да, вы можете изменить шаблоны файлов (или просто предоставить дополнительные шаблоны файлов), , например, .Однако, прежде чем сделать это, я хотел бы спросить себя: действительно ли требуется много усилий, чтобы добавить желаемую доступность?Я склонен ошибаться в сторону прагматики, когда дело доходит до этого ... если бы я хотел значительно различных шаблонов, я мог бы это сделать.Иначе ... ме.

2 голосов
/ 26 июля 2010

Если вы опускаете модификатор в классе, это либо:

  • внутренний (не вложенные классы)
  • приватный (во вложенных классах)

Я просто подумал, что добавлю это (что оно не ВСЕГДА внутреннее, если не указано).


Но, если вы действительно хотите изменить шаблоны, вы захотитечтобы вообще перейти в папку установки (я буду использовать папки по умолчанию):

** C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE **

Там,Вы найдете различные папки с шаблонами.Вы ищете следующее (если копать глубже): C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class.zip

Просто измените файл Class.cs там.О, и в случае, если вы все испортили, вот оригинальная версия:

using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$endif$using System.Text;

namespace $rootnamespace$
{
    class $safeitemrootname$
    {
    }
}

Вы нужная версия:

using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$endif$using System.Text;

namespace $rootnamespace$
{
    public class $safeitemrootname$
    {
    }
}
2 голосов
/ 26 июля 2010

Быстрый поиск обнаружил это:

Запретить Visual Studio добавлять ссылки по умолчанию и использование для новых классов

Ответ демонстрирует, что вы можете изменить шаблон класса по умолчанию.

Надеюсь, это поможет.

2 голосов
/ 26 июля 2010

Для этого вам нужно создать собственный шаблон, или использовать фрагменты кода, или, возможно, инструмент, подобный ReSharper, у которого есть собственный механизм фрагментов.

Однако это, вероятно, плохая идея. Вы будете обнародовать вещи, которые не должны быть публичными. Лучше начинать все с internal и делать их общедоступными только по мере необходимости.

...