gpt4 book ai didi

c# - 在C#中嵌入一个Lua交互提示窗口

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:18 24 4
gpt4 key购买 nike

我尝试在我的 C# 应用程序中提供一些脚本功能。 经过一些搜索,Lua 和 LuaInterface 看起来是一种合理的方式。 通过在我的 C# 代码中嵌入一个 Lua VM,我可以加载一个 Lua 脚本和处理方法 在 C# 类中定义没有任何问题。

但是,我想知道有没有办法不仅在 我的c#程序,还要在我的程序中有一个lua交互提示? 因此,我可以键入命令并立即查看返回结果。

任何关于我应该从哪里开始处理它的提示都会非常有帮助!

最好的问候

最佳答案

Lua 的 debug 模块包含一个非常基本的交互式控制台:debug.debug()(Lua 手册建议 this module should be used only for debugging)。

如果这不能满足您的需求,您自己实现一个也很容易。如果您要在 Lua 本身中编写它,那么绝对的骨架控制台将是:

while true do
io.write("> ")
loadstring(io.read())()
end

这会因语法或运行时错误而崩溃。一个稍微不那么简单的版本,它捕获(并忽略)错误:

while true do
io.write("> ")
local line = io.read()
if not line then break end -- quit on EOF?
local chunk = loadstring(line)
if chunk then
pcall(chunk)
end
end

这可以通过显示语法错误(失败时 loadstring 的第二个返回值)、运行时错误(失败时 pcall 的第二个返回值)、返回值来增强评估代码([2..N] 从 pcall 成功返回值)等。

如果您想要真正花哨,您可以允许人们输入多行语句。查看源发行版中的 src/lua.c 以了解这是如何完成的。

关于c# - 在C#中嵌入一个Lua交互提示窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5838491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com