Как захватить ввод при отладке кода Visual Studio с помощью .NET Core [duplicate]

Вы можете лучше понять ClassCastException и кастинг, как только вы поймете, что JVM не может угадать неизвестное. Если B является экземпляром A, он имеет больше членов класса и методов в куче, чем A. JVM не может угадать, как отличать A до B, поскольку цель сопоставления больше, а JVM не знает, как заполнить дополнительные элементы.

Но если A был экземпляром B, это было бы возможно, потому что A является ссылкой на полный экземпляр B, поэтому отображение будет взаимно однозначным.

5
задан James L. 17 December 2016 в 05:40
поделиться

2 ответа

Чтобы прочитать ввод во время отладки, вы можете использовать свойство console в своих конфигурациях в launch.json

{
    "version": "0.2.0",
    "configurations": [{
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceRoot}/bin/Debug/netcoreapp2.0/Hashing.dll",
            "args": [],
            "cwd": "${workspaceRoot}",
            "console": "externalTerminal",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart"
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

Вы можете использовать "externalTerminal" или "integratedTerminal". "internalConsole", похоже, не работает.

Я использую настройку integratedTerminal, поскольку терминал находится внутри самого VSCode. Теперь вы сможете читать ввод с помощью Console.ReadLine();

9
ответ дан sauravsahu 19 August 2018 в 00:28
поделиться
  • 1
    Отличный и правильный ответ! Это решило мои проблемы (запуск приложений и чтение ключевых отзывов в VSC, не выходя из него). С каких пор start.json поддерживает новое свойство консоли? Время, когда я представил свой вопрос, VSC поддерживал только свойство externalConsole. – James L. 30 September 2017 в 16:09
  • 2
    Я рад, что решение сработало для вас. Я не совсем уверен, когда они добавили его, хотя. – sauravsahu 30 September 2017 в 16:15

Я довольно новичок в c # -взаимном отладчике студии ...

попробуйте установить контрольную точку перед вашим

Console.Readline()

и отладить ее, перейдя через ваш код F10 (не F11).

он должен остановиться на

Console.Readline()

и дождаться ввода.

-2
ответ дан canoodle 19 August 2018 в 00:28
поделиться
  • 1
    Спасибо за ответ, но я использую новый код Visual Studio вместо Visual Studio. Ваше решение не работает. – James L. 17 December 2016 в 15:11
Другие вопросы по тегам:

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