「NeoLua」の版間の差分
| 40行目: | 40行目: | ||
clr.System.Console.WriteLine(s); | clr.System.Console.WriteLine(s); | ||
"); | "); | ||
} | |||
</source> | |||
dynamic変数を使わない方法だとSetMemberValue()だのCallMember()などのメソッドを使う。 | |||
この場合のDoChunkは[[パスカル記法]]だ。 | |||
ついでにまったく関係ないことだがLuaでの文字列連結は「..」だ。 | |||
<source lang="csharp"> | |||
using (var lua = new Lua()) | |||
{ | |||
var env = lua.CreateEnvironment(); | |||
env.DoChunk(@" | |||
name = 'foo'; | |||
function Hello() | |||
return 'hello ' .. name; | |||
end | |||
","test.lua"); | |||
var ret1 = env.CallMember("Hello"); | |||
Console.WriteLine(ret1.ToString()); | |||
env.SetMemberValue("name", "bar"); | |||
var ret2 = env.CallMember("Hello"); | |||
Console.WriteLine(ret2.ToString()); | |||
} | } | ||
</source> | </source> | ||