Как генерировать методы считывания и методы set в Visual Studio?

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

216
задан bitek 3 October 2012 в 20:54
поделиться

7 ответов

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

283
ответ дан Naveed S 23 November 2019 в 04:18
поделиться

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

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

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

0
ответ дан Mario Marinato 23 November 2019 в 04:18
поделиться

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

http://msdn.microsoft.com/en-us/library/f7d3wz0k (По сравнению с 80) .aspx http://www.jetbrains.com/

1
ответ дан Daniel 23 November 2019 в 04:18
поделиться

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

6
ответ дан Naveed S 23 November 2019 в 04:18
поделиться

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

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
ответ дан Jon Limjap 23 November 2019 в 04:18
поделиться

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

, Если Вы щелкаете правой кнопкой по переменной в контекстном меню, которое открывается, нажимают на "Осуществлять рефакторинг" объект. Тогда выберите, инкапсулируют поле. Это создаст свойство метода get/метода set для переменной.

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

51
ответ дан Dan Herbert 23 November 2019 в 04:18
поделиться

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

4
ответ дан 23 November 2019 в 04:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: