MoonSharp C#使用lua脚本
in C# with 0 comment
对于一些程序需要用户自定义功能的情况 可以给用户预留参数设置的接口 但是这个办法有时候实现起来繁琐而且功能限制多一些 还要重新打包 重新发布, 于是 有聪明的小伙伴想到了可以用脚本的方式实现 用脚本自定义性更强 而且更加轻松(但是对于终端用户来说 可能学习成本会多一点点 但是完全可以自己预留接口 自己实现)

机器翻译的手册

MoonSharp

什么是 MoonSharp,为什么用 MoonSharp
MoonSharp 是一个用 纯 C# 编写的 Lua 解释器,专为 .NET 平台(C#、Unity、Xamarin、.NET Core/.NET 5+)设计。它让你能在 C# 程序中无缝嵌入 Lua 脚本,实现动态逻辑扩展、热更新、用户自定义脚本等功能。
它不是调用原生 Lua DLL,而是完全用 C# 重写的 Lua 5.2 兼容引擎 —— 这意味着:

安装

Install-Package MoonSharp

DEMO

using MoonSharp.Interpreter;

class Progran
{
    public static void Main()
    {
        MoonSharpFactorial();
    }
    public static double MoonSharpFactorial()
    {
        string scriptStr = @"
if CsharpFunction() then
  print(""真的"");
else
  print(""假的"");
end
return 365;
";
        // 这是创建一个新的环境 里面可以加入全局变量 供lua调用
        var script = new Script();
        script.Globals["CsharpFunction"] = (Func<bool>)CsharpFunction;
        DynValue res = script.DoString(scriptStr);
        Console.WriteLine(res.Number);
        return res.Number;
    }

    public static bool CsharpFunction()
    {
        Console.WriteLine("这是c#方法");
        return true;
    }
}

参考链接