Как мы можем генерировать геттеры и сеттеры в Visual Studio?

Под «генерацией» я подразумеваю автогенерацию кода, необходимого для конкретной выбранной (множественной) переменной (ей).

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

6.08.2008 02:15:14
16 ОТВЕТОВ
РЕШЕНИЕ

Вместо того, чтобы использовать Ctrl+ K, Xвы также можете просто напечатать, propа затем Tabдважды нажать .

292
9.12.2019 18:02:25
И не забывайте «propg» + tab, который генерирует то же самое, но с частным сеттером.
Andrew M 17.11.2009 09:31:57
См. Msdn.microsoft.com/en-us/library/z41h7fat.aspx для более полезных фрагментов кода в Visual C #
Titus 22.06.2015 10:04:21

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

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

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

0
9.12.2019 18:05:15

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

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 этот метод всегда также использовался.

30
6.08.2008 02:31:37
Разве стандарт в C # не является нижней чертой после имени члена, property_а не до _property?
Julen 30.03.2011 14:00:54
@Julen - Я всегда видел соглашение об имущественных правах.
Nathan DeWitt 20.11.2012 03:39:32

Если вы используете Visual Studio 2005 и выше, вы можете очень быстро создать установщик / получатель, используя команду вставки фрагмента.

Щелкните правой кнопкой мыши свой код, нажмите Вставить фрагмент ( Ctrl+ K, X), а затем выберите «Пропеллер» из списка.

6
9.12.2019 18:07:56

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

Если щелкнуть правой кнопкой мыши переменную, в всплывающем контекстном меню щелкните элемент «Refactor» и выберите « Encapsulate Field ...» . Это создаст свойство getter / setter для переменной.

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

51
9.12.2019 20:21:57
К сожалению, этот вариант не предоставляется в экспресс-версиях Visual Studio.
Toby 11.05.2012 07:11:01
здесь тоже есть крик - я предпочитаю таким образом :) - CTRL + R + E
Vukasin 15.10.2013 18:05:00

В дополнение к фрагменту 'prop' и авто-свойствам, существует опция рефакторинга, позволяющая выбрать существующее поле и открыть его через свойство ( щелкните правой кнопкой мыши поле → RefactorEncapsulate Field ... ).

Также, если вам не нравится реализация «prop», вы можете создавать свои собственные фрагменты. Кроме того, сторонний инструмент рефакторинга, такой как ReSharper , предоставит вам еще больше возможностей и упростит создание более сложных фрагментов. Я бы порекомендовал ReSharper, если вы можете себе это позволить.

1
9.12.2019 20:19:51
Первая ссылка перенаправляет на документацию Visual Studio 2005 Retired . К какому из десяти это относится? Предположительно, это описание того, как использовать фрагменты в Visual Studio.
Peter Mortensen 9.12.2019 18:48:58

Если вы используете ReSharper, перейдите в меню ReSharper → КодСоздать ...

(Или нажмите Alt+ Insвнутри окружающего класса), и вы получите все варианты генерации геттеров и / или сеттеров, о которых вы только можете подумать :-)

4
9.12.2019 19:49:59

Вы также можете использовать «propfull» и TABдважды ударить .

Переменная и свойство с get и set будут сгенерированы.

27
9.12.2019 19:59:26
это более полезный, и я всегда забываю об этом
Dave Alperovich 25.07.2013 22:12:51
Я делаю сериализацию XML и порождаю множество свойств по всему шоу. + 100septillion против, если бы я мог. Спасибо! Редактировать - ДАЖЕ ЛУЧШЕ, скрипт autohotkey + ^ это = производительность более 90000!
Eon 21.07.2014 11:41:18
Peter Mortensen 9.12.2019 20:04:24

Используйте propfullключевое слово.

Это сгенерирует свойство и переменную.

Введите ключевое слово propfullв редакторе, а затем два TABс. Это сгенерирует код как:

private data_type var_name;

public data_type var_name1{ get;set;}

Видео, демонстрирующее использование сниппета «propfull» (между прочим), в 4 минуты 11 секунд.

3
9.12.2019 20:05:34
пожалуйста, предоставьте больше информации о вашем ответе, ответы с кратким описанием не
Kiyarash 25.09.2014 03:22:26
введите ключевое слово propfull в редакторе, он сгенерирует код, подобный закрытому типу данных var_name; public data_type var_name1 {get; set;}
avinash kadu 29.09.2014 12:24:16
Можете ли вы добавить ссылку на «propfull» ( редактируя свой ответ , а не здесь, в комментариях)?
Peter Mortensen 9.12.2019 20:06:19

Я создал свой собственный фрагмент, который только добавляет {get; set;}. Я сделал это только потому, что нахожу propTabнеуклюжим.

<?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>
</CodeSnippets>

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

2
9.12.2019 20:15:34

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

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

    Введите описание изображения здесь

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

    Введите описание изображения здесь

  • В диалоговом окне « Просмотр изменений ссылок - Инкапсулировать поле » нажмите кнопку Apply.

    Введите описание изображения здесь

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

    Введите описание изображения здесь



Вы также размещаете курсор для выбора свойства . Используйте меню EditRefactorEncapsulate Field ...

32
9.12.2019 20:29:25

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

Вы должны выбрать, хотите ли вы использовать свойство вместо поля или нет.

2
9.12.2019 20:33:27

Введите описание изображения здесь

От имени инструмента Visual Studio мы можем легко генерировать свойства C # с помощью онлайн-инструмента, называемого генератором свойств C #.

0
9.12.2019 20:35:14
бесполезная особенность
SeReGa 12.12.2018 07:49:13

Вы просто нажимаете Alt+ Insв Android Studio.

После объявления переменных вы получите методы получения и установки в сгенерированном коде.

-4
9.12.2019 20:37:02
Никто не спрашивал про андроид студию
warzone_fz 9.12.2018 21:25:39
Вопрос «Как мы можем генерировать геттеры и сеттеры в Visual Studio?» , Visual Studio - это не то же самое, что Android Studio .
Peter Mortensen 9.12.2019 20:46:38

Сначала получите Extension, просто нажмите ( Ctrl+ Shift+ X) и установите установщик геттера ....

После этого просто выберите вашу переменную и щелкните правой кнопкой мыши. Перейти к палитре команд ...

И введите getter ... Он предложит генерировать методы get и set. Нажмите на это ...

0
9.12.2019 20:49:25
Что вы подразумеваете под «Сначала получите расширение» ?
Peter Mortensen 9.12.2019 20:49:50
В каком контексте следует нажимать Ctrl + Shift + X?
Peter Mortensen 9.12.2019 20:51:26

В visual studio 2019 выберите ваши свойства следующим образом:

введите описание изображения здесь

Затем нажмите Ctrl+r Затем нажмитеCtrl+e

Появится диалоговое окно с предварительным просмотром изменений, которые будут внесены в ваш код. Если все выглядит хорошо (что в основном и будет), нажмите OK.

0
25.12.2019 23:38:43