Как создать геттеры и сеттеры в Visual Studio?

Под "generate" подразумевается автоматическое генерирование кода, необходимого для выбранного (набора) переменных (s).

Но более явное объяснение или комментарий о хорошей практике приветствуются.

Ответ 1

Вместо использования ctrl + k, x вы также можете просто ввести prop, а затем дважды нажать вкладку

Ответ 2

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

Если вы щелкните правой кнопкой мыши на переменной, в контекстном меню, которое появляется, щелкните элемент "Рефакторинг". Затем выберите инкапсулированное поле. Это создаст свойство getter/setter для переменной.

Я не слишком большой поклонник этой техники, так как это немного неудобно использовать, если вам нужно создать много геттеров/сеттеров, и она помещает свойство непосредственно под частным полем, что меня задевает, потому что Обычно у меня есть все мои личные поля, сгруппированные вместе, и эта функция Visual Studio прерывает форматирование моего класса.

Ответ 3

Сгенерируйте, вы имеете в виду автоматическое создание? Если это не то, что вы имеете в виду:

Visual Studio 2008 имеет самую легкую реализацию для этого:

public PropertyType PropertyName { get; set; }

В фоновом режиме создается неявная переменная экземпляра, к которой ваше свойство сохраняется и извлекается.

Однако, если вы хотите добавить больше логики в свои свойства, вам понадобится переменная экземпляра для нее:

private PropertyType _property;

public PropertyType PropertyName
{
    get
    {
        //logic here 
        return _property;
    }
    set
    {
        //logic here
        _property = value;
    }
 }

Предыдущие версии Visual Studio всегда использовали этот метод longhand.

Ответ 4

вы также можете использовать "propfull" и дважды нажать TAB, переменная и свойство с get и set будут сгенерированы.

Ответ 5

Я использую Visual Studio 2013 Professional.

  • Поместите курсор в строку переменной экземпляра.

    enter image description here

  • Нажмите комбинацию клавиш Ctrl + R, Ctrl + E или щелкните правой кнопкой мыши, выберите контекстное меню Refactor \ Encapsulate Field..., затем нажмите OK.

    enter image description here

  • В Preview Reference Changes - Encapsulate Field diaglog нажмите кнопку Apply.

    enter image description here

  • Это результат:

    enter image description here



Вы также поместите курсор для выбора свойства, используйте меню Изменить\Рефакторинг\Инкапсулировать поле...

и

private int productID;

public int ProductID
{
    get { return productID; }
    set { productID = value; }
}

перейти в

public int ProductID { get; set; }

Ответ 6

Если вы используете Visual Studio 2005 и вы можете быстро создать сеттер/приемник, используя команду фрагмента вставки. Щелкните правой кнопкой мыши на свой код, щелкнув "Вставить фрагмент" (Ctrl + k, x), а затем выберите "prop" из списка. Надеюсь, это поможет.

Ответ 7

Если вы используете ReSharper, зайдите в меню ReSharper → Code → Generate... (или нажмите Alt + Ins внутри окружающего класса), и вы получите все варианты для генерирующих геттеры и/или сеттеры, о которых вы можете думать: -)

Ответ 8

используйте ключевое слово propfull.
Он будет генерировать свойство и переменную

Ответ 9

Я знаю, что это старше солнца, но решил, что я опубликую это в качестве своего ответа, потому что он просто так делает это.

Что я сделал, так это создать свой собственный фрагмент, который ТОЛЬКО добавляет {get; set;}. Я сделал это только потому, что считаю prop > tab неудобным.

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
        <Title>get set</Title>
         <Shortcut>get</Shortcut>
    </Header>
    <Snippet>
        <Code Language="CSharp">
            <![CDATA[{get; set;}]]>
        </Code>
    </Snippet>
  </CodeSnippet>

При этом вы вручную вводите PropType и PropName, затем введите get > tab и добавьте набор get. Его ничего магического, но поскольку я, как правило, сначала набираю свой модификатор доступа, я также могу закончить имя и тип.   

Ответ 10

У меня больше нет Visual Studio на моей машине (и я использую Linux), но я помню, что был мастер, скрытый где-то внутри одного из меню, которое давало доступ к построителю классов.

С помощью этого мастера вы можете определить все детали своих классов, включая методы и атрибуты. Если я хорошо помню, был вариант, через который вы могли бы попросить VS создать для вас сеттеры и геттеры.

Я знаю, что это довольно неопределенно, но проверьте это, и вы можете его найти.

Ответ 11

В дополнение к фрагменту "prop" и авто-свойствам существует опция рефакторинга, позволяющая вам выбрать существующее поле и выставить его через свойство. Кроме того, если вам не нравится реализация "prop", вы можете создать свои собственные фрагменты. Кроме того, сторонний инструмент рефакторинга, такой как resharper, даст вам еще больше возможностей и упростит создание более сложных фрагментов. Я бы рекомендовал Resharper, если вы можете себе это позволить.

http://msdn.microsoft.com/en-us/library/f7d3wz0k(VS.80).aspx http://www.jetbrains.com/

Ответ 12

В Visual Studio Community Edition 2015 вы можете выбрать все нужные вам поля и затем нажать ctrl + . для автоматического создания свойств. Вы должны выбрать, хотите ли вы использовать свойство вместо поля или нет.

Ответ 13

введите описание изображения здесь от инструмента визуальной студии мы сможем легко генерировать свойства С# с помощью онлайн-инструмента называется. генератор С#.

Ответ 14

Просто нажмите Alt + Ins в студии Android после объявления переменных, вы получите геттеры и сеттеры в генерации кода.