「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> | ||