代码之家  ›  专栏  ›  技术社区  ›  user90150

如何从.NET调用Lua函数

  •  1
  • user90150  · 技术社区  · 16 年前

    我使用LuaInterface库在.net中运行lua,效果很好。我可以通过lua访问CLR。但是如何从C#调用Lua函数呢?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Charlie Salts    12 年前

    你需要找一个 LuaFunction ,从中可以使用Call()函数。

    this website .

    无论如何, here's a newer link to a Channel 9 blog post that has some sample code .

        2
  •  1
  •   Erik BRB    8 年前

    Test.lua文件将包含:

    -- Function sums up two variables
    function SumUp(a, b)
        return a + b;
    end
    
    function GetTable()
        local table =
        {
            FirstName = "Howard",
            LastName = "Wolowitz",
            Degree = "just an Engineer :)",
            Age = 28
        };
    
        return table;
    end;
    

    您的C代码如下所示:

    static void Main(string[] args)
        {
            try
            {
                Lua lua = new Lua();
                lua.DoFile(@"D:\Samples\Test.lua");
    
                // SumUp(a, b)
                var result = lua.DoString("return SumUp(1, 2)");
                Console.WriteLine("1 + 2 = " + result.First().ToString());
    
                // GetTable()           
                var objects = lua.DoString("return GetTable()"); // Array of objects
                foreach (LuaTable table in objects)
                    foreach (KeyValuePair<object, object> i in table)
                        Console.WriteLine($"{i.Key.ToString()}: {i.Value.ToString()}");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception: " + ex.ToString());
            }
            Console.WriteLine("Press any key...");
            Console.ReadKey();
        }
    
    推荐文章