Как вернуть правильный код выхода с AttachConsole из Windows Forms в C # [дубликат]

Буквально самый простой способ исправить NullReferenceExeption имеет два пути. Если у вас есть GameObject, например, с прикрепленным скриптом и переменной с именем rb (rigidbody), эта переменная начнет пустую, когда вы начнете игру. Вот почему вы получаете NullReferenceExeption, потому что на компьютере нет данных, хранящихся в этой переменной.

В качестве примера я буду использовать переменную RigidBody. Мы можем добавить данные действительно легко на самом деле несколькими способами:

  1. Добавить RigidBody к вашему объекту с помощью AddComponent> Физика> Rigidbody Затем зайдите в свой скрипт и введите rb = GetComponent<Rigidbody>();. Эта строка кода работает лучше всего под ваши функции Start() или Awake().
  2. Вы можете добавить компонент программно и назначить переменную одновременно с одной строкой кода: rb = AddComponent<RigidBody>();

Дальнейшие заметки: если вы хотите, чтобы единство добавлялось компонент для вашего объекта, и вы, возможно, забыли добавить его, вы можете ввести [RequireComponent(typeof(RigidBody))] над объявлением класса (пробел ниже всех ваших приложений). Наслаждайтесь и получайте удовольствие от игр!

2
задан crauscher 21 January 2009 в 14:09
поделиться

2 ответа

Ответ:

start /wait [Your Command]

, а затем

echo %errorlevel%

, чтобы извлечь возвращаемое значение.

-

И поскольку мне нравится писать пакетные файлы ... (это моя проблема ...)

@echo off
echo Waiting for program to exit...
start /wait %*
echo Return code was %errorlevel%

Сохраните его где-нибудь с расширение .bat. Запустите его с командной строкой программы, которую вы хотите запустить, в качестве аргументов. Он выполнит команду, которую вы ей дали, дождитесь ее окончания, а затем распечатайте возвращаемое значение.

Вы также можете жестко закодировать программу, заменив строку запуска / ожидания вашим приложением, потому что docs (start /?) говорят:

При выполнении приложения, которое является 32-разрядным графическим приложением, CMD.EXE не ждет завершения приложения перед возвращением в командную строку. Это новое поведение НЕ происходит, если выполняется в командном скрипте.

CMD будет ждать winform, если он вызван из сценария независимо от того, включены ли расширения команд.

7
ответ дан 4 revs 1 September 2018 в 06:51
поделиться

Подробнее об использовании директивы ERRORLEVEL см. в этой статье Роб ван дер Вуде .

0
ответ дан Treb 1 September 2018 в 06:51
поделиться
Другие вопросы по тегам:

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