Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Вместо того, чтобы использовать ctrl + k , x , Вы можете также просто тип prop
и затем поражать вкладку дважды
Мне не устанавливали Visual Studio на моей машине больше (и я использую Linux), но я действительно помню, что был мастер, скрытый где-нибудь в одном из меню, которые предоставили доступ к разработчику класса.
С этим мастером, Вы могли определить детали всех своих классов, включая методы и атрибуты. Если я помню хорошо, была опция, через которую Вы могли попросить, чтобы VS создал методы set и методов get автоматически для Вас.
я знаю, что это довольно неопределенно, но проверьте его, и Вы могли бы найти его.
В дополнение к отрывку 'опоры' и автосвойствам, существует осуществлять рефакторинг опция позволить Вам выбрать существующее поле и представить его через свойство. Кроме того, если Вам не нравится реализация 'опоры', можно создать собственные отрывки. Кроме того, сторонний инструмент рефакторинга как resharper даст Вам еще больше функций и облегчит создавать более усовершенствованные отрывки. Я рекомендовал бы Resharper, если можно предоставить его.
http://msdn.microsoft.com/en-us/library/f7d3wz0k (По сравнению с 80) .aspx http://www.jetbrains.com/
Если Вы используете Visual Studio 2005, и можно создать метод set/метода get очень быстро с помощью команды отрывка вставки. Щелкните правой кнопкой по своему коду, нажимают на Insert Snippet ( Ctrl + k , x ) и затем выбирают, "опора" формируют список. Надежда это помогает.
Генерируют, сделайте Вы имеете в виду, автоматически генерируют? Если это не то, что Вы имеете в виду:
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 всегда использовали этот рукописный метод также.
Visual Studio также имеет функцию, которая генерирует Свойство от частной переменной.
, Если Вы щелкаете правой кнопкой по переменной в контекстном меню, которое открывается, нажимают на "Осуществлять рефакторинг" объект. Тогда выберите, инкапсулируют поле. Это создаст свойство метода get/метода set для переменной.
я не слишком крупный поклонник этой техники, поскольку это немного неудобно использовать, если необходимо создать много методов get/методов set, и это помещает свойство непосредственно ниже частного поля, которое прослушивает меня, потому что у меня обычно есть все мои частные поля, группировавшиеся, и эта функция Visual Studio повреждает форматирование моего класса.
Если вы используете ReSharper, перейдите в меню ReSharper -> Код -> Создать ... (или нажмите Alt + Ins внутри окружающего класса) и вы получите все возможные варианты создания геттеров и / или сеттеров: -)