Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Я удивлен, что никто еще не упомянул элементарные знания XAML. Знание, что XAML, и способность сделать некоторое основное редактирование с помощью XAML, а не инструмента графического дизайна. Разработчики среднего уровня должны быть в состоянии поднять форму / графические прототипы с помощью инструмента как XAMLPad.
Я расширил бы развертывание ClickOnce с помощью Развертывания WPF в целом, так как хорошо знать ограничения и особенности каждой модели (только ClickOnce, XBAP, браузер). Размещение его в среднего уровня кажется справедливым все же.
Я думаю, что жизненный цикл приложения WPF - от создания до времени выполнения должен быть включен в уровень Новичка вопросов. Не зная, что это, его твердое верит, каждый - реальный WPF dev.
Середина или возможно пользовательские элементы управления Senior
Середина или возможно Senior: WinForms и WPF InterOp.
я думаю, что предпочел бы dev, который будет знать Смешение . Он мог связаться легко с разработчиком и также сделать некоторый основной материал разработчика быстрее, чем просто запись в xaml.
список интересен, возможно, ссылки на темы помогли бы.
Аплодисменты
Начальный уровень
Уровня
Senior
Что относительно GUI программирование/графика испытывают в общем и cs знании? Если это для рабочие места с полной занятостью, не имеет значения, по моему скромному мнению, если парень должен провести первые несколько месяцев некоторое время с изучением WPF, если у него (или она) есть серьезная подготовка.
Лично, я поместил, 'Как рабочие потоки могут обновить UI' прямо под начальным уровнем. Среднего уровня, если Вы действительно должны. Если программист начального уровня может понять различие между логическим деревом и визуальным деревом, они должны понять, как обновить UI от фонового потока.
В моей организации, мы делаем большую разработку WPF без Смешения. Мне особенно не нравится Смешение, таким образом, я немного смещаюсь, но навыки Смешения должны быть хорошим, чтобы, я думаю.
Довольно хороший список, по-моему.
Однако я не спросил бы хитрый вопросы на интервью. Интервью дает самого достаточно напряжения, вопрос о приеме может смутить даже высококвалифицированного человека.
Я поместил привязку и преобразователи в начальном уровне, с тех пор именно так Вы проводите много времени в WPF.
Лично я бы сажал их перед стандартной машиной для сборки разработчиков и просил выполнить какую-нибудь задачу. Никаких вопросов, просто посмотрите, на что похож их код через пару часов (или больше, если задача длиннее).
У меня было нулевое количество отказов при принятии решения о найме на основе результатов реального программирования в реальной жизни. test.
Задача не должна быть слишком сложной. В прошлом я использовал простое ежедневное приложение с сообщениями, хранящимися в базе данных или XML-файле, и с простым пользовательским интерфейсом. Убедитесь, что вы попросили их хорошо ее структурировать (так как задача достаточно небольшая, чтобы все ее можно было выполнить в одном классе, если бы они почувствовали склонность).
Из приведенных выше вопросов я бы сказал, что вы не можете получить четкое представление о том, действительно ли они действительно хороши или нет. Потенциальный кандидат может просто прочитать их и создать готовые ответы, которые звучат великолепно. Все это свидетельствует о том, что кандидат может разговаривать, но в самой работе важно то, умеет ли он ходить пешком.
A WPF developer should have a firm grasp of separating the XAML from the code-behind, and be able to discuss at length where that line is to be drawn.
Being able to set up a model in the language of her choice, and then using XAML to display views on that model through data binding, data templates, control templates, styles, triggers, value converters and UserControls is a fairly basic task for the mid-level programmer. (Though a small amount of leeway should be granted if asking someone to create something like a control template "from heart.")
Really, there is a lot in WPF, and if it weren't for the MSDN forums and in-depth books on the subject, it'd be quite the task to "just pick it up." For that reason, I would rate perseverance and the ability to learn from others as a top requirement for any level.
For an entry-level WPF programmer, I wouldn't expect any knowledge of WPF per se, but I would demand knowledge of object-oriented principles, separation of UI from business logic, and comfort with a similar event model. Experience laying out UI elements in a style similar to WPF (with DockPanel containers, etc.) is a plus.
Edit: Also, what Colin Mackay said.
Еще одна очень важная вещь - это разница между стратегиями пузырьковой и туннельной маршрутизации.
стили предоставляют вам механизм применения темы в приложении и переопределения этой темы в тех конкретных случаях, когда вы хотите. Стили определяются как ресурсы; фактически, они определены в том же разделе вашего файла XAML, в какие ресурсы определены.
Начальный уровень
Старший