「NeoLua」の版間の差分

imported>Administrator
編集の要約なし
61行目: 61行目:
                 var ret2 = env.CallMember("Hello");
                 var ret2 = env.CallMember("Hello");
                 Console.WriteLine(ret2.ToString());
                 Console.WriteLine(ret2.ToString());
            }
</source>
=== C#で関数を追加する ===
Luaでfunctionを書く方法だけでなく、C#で関数を追加することもできる。
<source>
            using (var lua = new Lua())
            {
                var env = lua.CreateEnvironment();
                // C#で書かれたadd関数を追加
                env.Add("add", new Func<int,int,int>((a,b) => a+b));
                // Lua側から呼び出してみる
                var ret = env.DoChunk(@"return add(1,2)", "main.lua");
                Console.WriteLine(ret);
            }
</source>
dynamic版の場合だと更に簡潔明瞭。
<source>
            using (var lua = new Lua())
            {
                var env = lua.CreateEnvironment();
                // C#で書かれたadd関数を追加
                env.add = new Func<int,int,int>((a,b) => a+b);
             }
             }
</source>
</source>