在C#当中你可以使用Neo.Lua这个第三方库来集成LUA支持,并且你的LUA当中还能够编写并且使用.Net的库。
首先在Nuget包管理器当中下载并且安装Neo.Lua、Neo.Lua.Desktop这两个包,之后我们新建一个WinFrom项目,在这个项目上面我们拖放一个TextBox以及一个Button,在这里我们的TextBox的名字叫做textbox_LuaContent,Button的名字则为button_Test。
建立好之后,我们在button_Test的响应函数里面编写如下代码:
private void button_Test_Click(object sender, EventArgs e)
{
try
{
using (var _lua = new Lua())
{
// 初始化环境
dynamic _g = _lua.CreateEnvironment<LuaGlobal>();
// 绑定函数委托
_g.print = new Action<string>(print);
// 编译代码成可执行的数据块
var _chunk = _lua.CompileChunk(textbox_LuaContent.Text, "Test.lua", new LuaCompileOptions() { DebugEngine = LuaStackTraceDebugger.Default });
// 执行
_g.dochunk(_chunk);
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
/// <summary>
/// 打印功能
/// </summary>
/// <param name="outputContent">要打印的内容</param>
private void print(string outputContent)
{
MessageBox.Show(outputContent);
}效果:
如果看不清楚,请右键查看图片。
