Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Необходимо познакомиться с Моно проектом и MonoDevelop; специальная цель тех проектов состоит в том, чтобы позволить создавать и выполнять код.NET множества платформ, включая Windows, Linux и MAC OSX.
Так как Моно является переопределение.NET, это всегда отстает немного позади Microsoft.NET, но у них есть хорошее покрытие.NET 2.0 и некоторой.NET 3.x функции. Обратите внимание, что Моно выполняет двоичные файлы.NET, поэтому, пока Ваши функции программы поддерживаются Моно, можно взять приложение EXE, Вы соответствовали в Windows и выполняли его на Linux / Моно без перекомпиляции.
Вы лучше пишете это с помощью некоторого межплатформенного инструментария. Скорее всего, Вы не сможете использовать хорошего визуального разработчика (действительно, это зависит, на каком инструментарии Вы выбираете), но запись UI вручную не является действительно настолько трудной. Парни HTML делают все это время, и это - довольно обычная практика в мире неMS также.
Некоторые межплатформенные инструментарии UI с привязкой.NET
Часть советует. Межплатформенное программирование похоже на программирование перекрестного браузера, и один верный вариант сделать протестировать, тест и тест на всех платформах, которые Вы хотите поддерживать.
Моно в настоящее время единственная опция. Это работает на этих платформах. И будут проблемы, не обязательно огромные, но все еще.
Проверьте Моно проект
Также взгляните на Silverlight или Flash для богатых интернет-приложений.
Я недавно записал немного приложения GUI C# на Linux, компилируя и выполняя использование моно. Я нашел, что должен был использовать "gmcs" компилятор, чтобы иметь доступ к современному C# и функциям .NET (моно 1,9 поставки с несколькими различными компиляторами).
И при компиляции .exe файла, я нашел, что должен был добавить, что "-target:winexe" переключаются для создания выполнения приложения в Windows, не имея всплывающего окна командной строки позади приложения.
Я должен все же узнать, как скомпилировать приложение .NET, которое в Windows будет работать от сетевых дисков, не требуя специальной конфигурации безопасности .NET на ПК. (Я думаю, что это - общий вопрос с приложениями .NET, но я все еще учусь.)
Как сказано ранее, Моно Проект является Вашим лучшим выбором, учитывая, он - общественная поддержка.
Если Вы находитесь в Visual Basic затем, REALbasic мог бы также быть достойный внимания, поскольку он имеет кросс-компилятор, который создает собственные исполняемые файлы. У них есть испытательный выпуск, который можно загрузить также
Честно я оценил бы Вашу клиентскую базу и Ваши существующие навыки. Если бы у Вас есть разделение 50/50 или даже 70/30 разделение Windows к не-Windows, Вы, вероятно, были бы более обеспечены с Java или некоторым другим межплатформенным инструментарием.
Моно достойная платформа (См. это ТАК, вопрос спросил приблизительно неделю назад), но если бы Вы делаете что-либо значительное, я пошел бы с инструментарием, разработанным для него.
BTW, если Вы хотите видеть то, на что приложение для GUI.NET похоже на Моно, вот является сообщением, которое я сделал каждый раз, когда я надел GUI NUnit, работающий Моно:
http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html