//https://search.bilibili.com/all?keyword=lua热更新&from_source=banner_search&spm_id_from=333.334.b_62616e6e65725f6c696e6b.2 //Siki学院视频 luanet.load_assembly(“System”) luanet.load_assembly(“testluainterface”)–加载程序集名称
Int32=luanet.import_type(“System.Int32”)–加载命名空间名称的执行类别 Program=luanet.import_type(“testluainterface.Program”) num=Int32.Parse(“2345”) –[[print(Int32) print(num) –]]
program1=Program() –[[
print(program1.name)–函数的名字是下一句TestMethod program1:TestMethod()–]] –[[void,strlength=program1:TestOut(“taiki.com”) print(void,strlength)–]]
void,count=program1:TestRef(“www.taike.com”,300) print(void,count)
using LuaInterface; namespace testluainterface { class Program { public string name = “siki”;
public void TestMethod() { Console.WriteLine("This is Test Method"); } public void TestOut(string name, out int count) { Console.WriteLine(name); count = name.Length;//Count是类型,不需要返回值,会在里 面自动返回int类型 } public void TestRef(string name,ref int count) { Console.WriteLine(name); Console.WriteLine(count); count = name.Length; } static void Main(string[] args) { Lua lua = new Lua();//创建Lua解释器 //lua["num"] = 34; //Console.WriteLine(lua["num"]); //lua.DoString("num=2"); //lua.DoString("str='a string'"); //object[] values = lua.DoString("return num,str"); //foreach (object obj in values) //{ // Console.WriteLine(obj); //} //lua.DoFile("Mylua.lua"); Program p=new Program(); //lua.RegisterFunction("CSharpToLuaMethod",p, p.GetType().GetMethod("CSharpMethod")); //lua.DoString("CSharpToLuaMethod()"); //lua.RegisterFunction("LuaStaticMethod", null,typeof(Program).GetMethod("MyStaticMethod")); //lua.DoString("LuaStaticMethod()"); lua.DoFile("script.lua"); Console.ReadKey(); } public void CSharpMethod() { Console.WriteLine("Hello Word"); } public static void MyStaticMethod() { Console.WriteLine("这是一种静态方法"); } }
}